Details
-
Bug
-
Resolution: Duplicate
-
Minor
-
None
-
None
-
None
-
3
-
9223372036854775807
Description
Since newer kernel no long export account_page_dirtied()
void account_page_dirtied(struct page *page, struct address_space *mapping)
{
struct inode *inode = mapping->host;
trace_writeback_dirty_page(page, mapping);
if (mapping_cap_account_dirty(mapping)) {
struct bdi_writeback *wb;
inode_attach_wb(inode, page);
wb = inode_to_wb(inode);
__inc_lruvec_page_state(page, NR_FILE_DIRTY);
__inc_zone_page_state(page, NR_ZONE_WRITE_PENDING);
__inc_node_page_state(page, NR_DIRTIED);
inc_wb_stat(wb, WB_RECLAIMABLE);
inc_wb_stat(wb, WB_DIRTIED);
task_io_account_write(PAGE_SIZE);
current->nr_dirtied++;
this_cpu_inc(bdp_ratelimits);
mem_cgroup_track_foreign_dirty(page, wb);
}
}
It looks harder to add Lustre cgourp support for new kernel, as copy function back to Lustre dosen't work, as there is static bdp_ratelimits in page-writeback.c , aslo potentially, we might call
__set_page_dirty_nobuffers(), but the problem is Lustre assume page locked, while __set_page_dirty_nobuffers() assume unlocked .
This looks not easy to be fixed without any upstream linux modifications..
Attachments
Issue Links
- is related to
-
LU-13288 a performance regression on the single stream write
-
- Resolved
-