“Dirty” and “Writeback” are separate stats and page states; for proof of this, see for example node_dirty_ok
:
nr_pages += node_page_state(pgdat, NR_FILE_DIRTY);
nr_pages += node_page_state(pgdat, NR_UNSTABLE_NFS);
nr_pages += node_page_state(pgdat, NR_WRITEBACK);
return nr_pages <= limit;
If one included the other, that would be taken into account here.
/proc/meminfo
doesn’t process the corresponding values either:
show_val_kb(m, "Dirty: ",
global_node_page_state(NR_FILE_DIRTY));
show_val_kb(m, "Writeback: ",
global_node_page_state(NR_WRITEBACK));