David Howells <[EMAIL PROTECTED]> wrote:
>
> 
> Hi Linus,
> 
> I'd like to improve mmap() support on !MMU still further by overloading struct
> backing_dev_info::memory_backed to hold flags describing what the backing
> device is capable of with respect to direct memory access.

->memory_backed is already overloaded in various awkward ways.  It would be
good to fix that up first, then add enhancements in a later patch.

Furthermore I'd suggest that we remove ->memory_backed and simply add a
bunch of new booleans to backing_dev_info rather than futzing with
bitflags.  Those booleans could be bitfields, of course.

And those fields should refer to device capabilities and not to device
characteristics: "what it can do" rather than "what it is".  So
"contributes to dirty memory" and "needs writeback" are good and "is a ram
disk thingy" is bad.

So in 2.6.11 as-is, we have:

bdi->dirty_memory_acct          Contributes to dirty memory accounting
bdi->needs_writeback            Needs writeback

>  (*) If bdi->memory_backed is 0, then the backing device is not accessible as
>      memory.

Not sure what this means.

>  (*) If the bdi->memory_backed is non-zero, then it's a bit mask of the
>      following:
> 
>       #define BDI_NO_WRITEBACK        0x00000001

Invert the sense of this, use ->needs_writeback

>       #define BDI_MEMORY_BACKED       0x00000001

Lose this.

>       #define BDI_CAN_MAP_DIRECT      0x00000002

bdi->can_map_direct

>       #define BDI_CAN_MAP_COPY        0x00000004

bdi->can_map_copy

>       #define BDI_CAN_READ_MAP        VM_MAYREAD
>       #define BDI_CAN_WRITE_MAP       VM_MAYWRITE
>       #define BDI_CAN_EXEC_MAP        VM_MAYEXEC

A separate field in backing_dev_info?


That `membacked' stuff in the !NOMMU implementation of do_mmap_pgoff()
looks like it could benefit from some rework as a result of the above as
well.  It all looks rather inferential.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to