On 05/15/2015 04:36 AM, Dmitry Monakhov wrote:
Alex Shi alex.shi@linaro.org writes:
Hi Dmitry&Theodore,
Someone said without the following patch on lts 3.10 kernel (which used as android base kernel). the write maybe very very slow, needs 1 or 2 seconds to finish.
In fact this was an optimization. wait_for_stable_page() is actually and optimized wait_on_page_writeback()
Hi, Dimtry, it *is* a optimization, the fault is just happened *without* this patch, not with this. :) The curious for me is why this patch has this effect. It looks like the new func just wait page wb when the device support data integrity. But Why the data integrity device need to wait wb, while other device don't need?
BTW, how to know if my disk support data integrity. My harddisk spec said it has this feature, but my linux kernel with integrity supported don't have /sys/block/sdx/integrity.
Thanks a lots for your quick response!
see: void wait_for_stable_page(struct page *page) { struct address_space *mapping = page_mapping(page); struct backing_dev_info *bdi = mapping->backing_dev_info;
if (!bdi_cap_stable_pages_required(bdi)) return; wait_on_page_writeback(page);
} It is very unlikely the patch provokes such huge slowdown. Can you please repeat your measurements and double check your evidence.