Re: Posted Write onto a PCI end point device using Linux

From: Sanka Piyaratna
Date: Wed Dec 08 2010 - 01:05:45 EST


Thanks for that Robert. When you say DMA, this has to be implemented at the
endpoint device doesn't it? There is no DMA mode on the CPU for doing this is
there?

Sanka Piyaratna




________________________________
From: Robert Hancock <hancockrwd@xxxxxxxxx>
To: Sanka Piyaratna <cesanka@xxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Sent: Wed, 8 December, 2010 3:25:47 PM
Subject: Re: Posted Write onto a PCI end point device using Linux

On Tue, Dec 7, 2010 at 9:57 PM, Sanka Piyaratna <cesanka@xxxxxxxxx> wrote:
> Hi Robert,
> Could you please tell me how I can initiate a posted write towards a PCIe
> endpoint with larger than 32 bit payload using Linux?
> Thanks and regards,

You can try writeq to get a 64-bit payload, but I don't think it's
available on all platforms. In particular with a 32-bit CPU, it may
not be possible at all. If you need to send bigger payloads then you
need to use DMA.

>
> Sanka Piyaratna
>
> ________________________________
> From: Robert Hancock <hancockrwd@xxxxxxxxx>
> To: Sanka Piyaratna <cesanka@xxxxxxxxx>
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Sent: Wed, 8 December, 2010 12:16:54 PM
> Subject: Re: Posted Write onto a PCI end point device using Linux
>
> On 12/07/2010 05:29 AM, Sanka Piyaratna wrote:
>> Hi,
>>
>>
>> I am wondering whether it is possible to issue a posted write using the
>> host
>> computer's root complex towards an PCI express end point. I have done this
>> using
>>
>> DMA in the past. However, if posted writes are possible that would save a
>> lot of
>>
>> time and effort and would be quicker too.
>
> Writes from the CPU to PCI memory are always posted. However, the posted
> write buffer size is usually quite limited and so this probably will
> still cause CPU overhead when writing any significant amount of data
> this way.
>
>




--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/