Re: [PATCH] 2.3.14: bug-fix for raw IO error recovery

Stephen C. Tweedie (sct@redhat.com)
Thu, 19 Aug 1999 19:18:21 +0100 (BST)


Hi,

On Thu, 19 Aug 1999 17:47:33 +0200 (CEST), Andrea Arcangeli
<andrea@suse.de> said:

> On Thu, 19 Aug 1999, Stephen C. Tweedie wrote:
>> The patch below fixes a problem with map_user_kiobuf() failing to
>> reset its virtual address pointer before a retry if it encounters a
>> locked page.

> Stehpen what about the fact that raw-io goes ahead even if the
> get_page_map() returns 0? Is this a bug or I am missing something (I admit
> I have not looked into raw-io too hard yet...).

As far as map_user_kiobuf() is concerned that is definitely a feature: I
want it to be able to encode user virtual addresses which might contain
non-page-struct pages (eg. video framebuffers). That's why there are
separate struct page *[] and void *[] arrays in the kiobuf.

However, currently, trying to actually do a brw_kiovec on such pages
will do the Wrong Thing, due to the the __io_virt/__io_phys bitops.
This is closely tied into the whole business of bigmem support, btw ---
if we get IO to high addresses right then brw_kiovec will do the right
thing.

For now, I'll probably just add a flag to the kiobuf header indicating
whether any unmappable pages are present in the page list, and reject
such IOs in brw_kiovec. However, I do actually have at least one user
currently relying on the existing behaviour in order to do IO direct
from frame buffers to disk.

--Stephen

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