2003-08-07 05:49:53

by Cho, joon-woo

[permalink] [raw]
Subject: [Q] How can I transfer data from hard disk to PCI device's memory

Hello.

I want to transfer data 'directly' from hard disk to some PCI device which
has memory

with the helpf of kernel(file system, device driver).

In above sentence 'directly' means that data does not go through main memory
of host.


So I am analyzing kernel code, but I am so confused because of memory system

complexity (page, buffer, ... ).

I find buffer head structure(struct buffer_head) has b_data pointer
variable.

I think kernel transfer data from HDD to this pointer variable.

Can I map this pointer variable(b_data) to PCI device's memory?


I am very confused because this part is highly related with complex memory
system

(page & buffer).

Please give me some hint. Thanks.



2003-08-07 12:09:35

by Alan

[permalink] [raw]
Subject: Re: [Q] How can I transfer data from hard disk to PCI device's memory

On Iau, 2003-08-07 at 06:45, Cho, joon-woo wrote:
> Hello.
>
> I want to transfer data 'directly' from hard disk to some PCI device which
> has memory
>
> with the helpf of kernel(file system, device driver).

The kernel doesn;t currently support this. The O_DIRECT I/O handling
needs to know about stuff like page reference counts that PCI space
doesn't have lots of older (and some current) hardware has real problems
with PCI PCI transfers.


So its a non trivial project, although doable