On 2/1/18 8:57 AM, Jerome Glisse wrote: > On Thu, Feb 01, 2018 at 08:34:58AM -0700, Jens Axboe wrote: >> On 1/31/18 11:13 AM, Jerome Glisse wrote: >>> That's one solution, another one is to have struct bio_vec store >>> buffer_head pointer and not page pointer, from buffer_head you can >>> find struct page and using buffer_head and struct page pointer you >>> can walk the KSM rmap_item chain to find back the mapping. This >>> would be needed on I/O error for pending writeback of a newly write >>> protected page, so one can argue that the overhead of the chain lookup >>> to find back the mapping against which to report IO error, is an >>> acceptable cost. >> >> Ehm nope. bio_vec is a generic container for pages, requiring >> buffer_heads to be able to do IO would be insanity. > > The extra pointer dereference would be killing performance ? No, I'm saying that requiring a buffer_head to be able to do IO is insanity. That's how things used to be in the pre-2001 days. -- Jens Axboe -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>