NODE
[C(NODE)] = {
[C(NODE)] = {
#define PHB_SET_NODE(PHB, NODE) ((PHB)->node = (NODE))
#define PHB_SET_NODE(PHB, NODE) ((PHB)->node = NUMA_NO_NODE)
[C(NODE)] = { /* RESULT_ACCESS RESULT_MISS */
[C(NODE)] = {
[ C(NODE) ] = {
[C(NODE)] = { /* RESULT_ACCESS RESULT_MISS */
[C(NODE)] = {
[C(NODE)] = {
[C(NODE)] = { /* RESULT_ACCESS RESULT_MISS */
[C(NODE)] = { /* RESULT_ACCESS RESULT_MISS */
[C(NODE)] = { /* RESULT_ACCESS RESULT_MISS */
[C(NODE)] = { /* RESULT_ACCESS RESULT_MISS */
[ C(NODE) ] = {
[ C(NODE) ] = {
[C(NODE)] = { /* RESULT_ACCESS RESULT_MISS */
[ C(NODE) ] = {
[ C(NODE) ] = {
[C(NODE)] = {
[C(NODE)] = {
[C(NODE)] = {
[C(NODE)] = {
[ C(NODE) ] = {
[C(NODE)] = {
[ C(NODE) ] = {
[ C(NODE) ] = {
[ C(NODE) ] = {
[ C(NODE) ] = {
[ C(NODE) ] = {
[ C(NODE) ] = {
[ C(NODE) ] = {
[ C(NODE) ] = {
[ C(NODE) ] = {
[ C(NODE) ] = {
hw_cache_extra_regs[C(NODE)][C(OP_READ)][C(RESULT_ACCESS)] = HSW_DEMAND_READ|
hw_cache_extra_regs[C(NODE)][C(OP_WRITE)][C(RESULT_ACCESS)] = HSW_DEMAND_WRITE|
[ C(NODE) ] = {
[ C(NODE) ] = {
[ C(NODE) ] = {
[C(NODE)] = {
[C(NODE)] = {
#define HOLE_SIZE(NODE) ((NODE)->hole_size)
#define HOLE_ADDR(NODE) (__drm_mm_hole_node_start(NODE))
gt->steering[NODE].group_target = node >> 1;
gt->steering[NODE].instance_target = node & 1;
[NODE] = { "NODE", NULL }, /* initialized by l3bank init */
gt->steering[NODE].ranges = xe3p_xpc_node_steering_table;
#define OF_KREF_READ(NODE) kref_read(&(NODE)->kobj.kref)
#define OF_KREF_READ(NODE) 1
[C(NODE)][C(OP_READ)][C(RESULT_ACCESS)] = ARMV8_IMPDEF_PERFCTR_BUS_ACCESS_RD,
[C(NODE)][C(OP_WRITE)][C(RESULT_ACCESS)] = ARMV8_IMPDEF_PERFCTR_BUS_ACCESS_WR,
[C(NODE)][C(OP_READ)][C(RESULT_ACCESS)] = ARMV8_IMPDEF_PERFCTR_BUS_ACCESS_RD,
[C(NODE)][C(OP_WRITE)][C(RESULT_ACCESS)] = ARMV8_IMPDEF_PERFCTR_BUS_ACCESS_WR,
[C(NODE)][C(OP_READ)][C(RESULT_ACCESS)] = ARMV8_IMPDEF_PERFCTR_BUS_ACCESS_RD,
[C(NODE)][C(OP_WRITE)][C(RESULT_ACCESS)] = ARMV8_IMPDEF_PERFCTR_BUS_ACCESS_WR,
[C(NODE)] = {
C(OP_READ), C(NODE), SBI_PMU_EVENT_TYPE_CACHE, 0}},
C(OP_READ), C(NODE), SBI_PMU_EVENT_TYPE_CACHE, 0}},
C(OP_WRITE), C(NODE), SBI_PMU_EVENT_TYPE_CACHE, 0}},
C(OP_WRITE), C(NODE), SBI_PMU_EVENT_TYPE_CACHE, 0}},
C(OP_PREFETCH), C(NODE), SBI_PMU_EVENT_TYPE_CACHE, 0}},
C(OP_PREFETCH), C(NODE), SBI_PMU_EVENT_TYPE_CACHE, 0}},
atomic_inc(&sbi->wb_sync_req[NODE]);
atomic_dec(&sbi->wb_sync_req[NODE]);
f2fs_folio_wait_writeback(dn->node_folio, NODE, true, true);
f2fs_folio_wait_writeback(dn->node_folio, NODE, true, true);
else if (fio->type == NODE)
f2fs_submit_merged_write(sbi, NODE);
si->gc_secs[NODE][BG_GC] + si->gc_secs[NODE][FG_GC],
si->gc_secs[NODE][BG_GC]);
si->gc_segs[NODE][BG_GC] + si->gc_segs[NODE][FG_GC],
si->gc_segs[NODE][BG_GC]);
enum page_type type = f2fs_has_inline_dentry(dir) ? NODE : DATA;
f2fs_folio_wait_writeback(ifolio, NODE, true, true);
f2fs_folio_wait_writeback(ifolio, NODE, true, true);
#define PAGE_TYPE_ON_MAIN(type) ((type) == DATA || (type) == NODE)
atomic_inc(&sbi->wb_sync_req[NODE]);
atomic_dec(&sbi->wb_sync_req[NODE]);
atomic_inc(&sbi->wb_sync_req[NODE]);
atomic_dec(&sbi->wb_sync_req[NODE]);
unsigned char data_type = (type == SUM_TYPE_DATA) ? DATA : NODE;
f2fs_folio_wait_writeback(ifolio, NODE, true, true);
f2fs_folio_wait_writeback(ifolio, NODE, true, true);
f2fs_folio_wait_writeback(ifolio, NODE, true, true);
f2fs_folio_wait_writeback(ifolio, NODE, true, true);
f2fs_folio_wait_writeback(ifolio, NODE, true, true);
f2fs_folio_wait_writeback(folio, NODE, true, true);
f2fs_folio_wait_writeback(ifolio, NODE, true, true);
f2fs_folio_wait_writeback(node_folio, NODE, true, true);
f2fs_folio_wait_writeback(node_folio, NODE, true, true);
f2fs_folio_wait_writeback(folio, NODE, true, true);
.type = NODE,
f2fs_handle_page_eio(sbi, folio, NODE);
.type = NODE,
trace_f2fs_writepage(folio, NODE);
f2fs_submit_merged_write(sbi, NODE);
f2fs_folio_wait_writeback(node_folio, NODE, true, true);
f2fs_folio_wait_writeback(folio, NODE, true, true);
f2fs_folio_wait_writeback(last_folio, NODE, true, true);
f2fs_submit_merged_write_cond(sbi, NULL, NULL, ino, NODE);
if (atomic_read(&sbi->wb_sync_req[NODE]) &&
f2fs_folio_wait_writeback(folio, NODE, true, true);
f2fs_submit_merged_write(sbi, NODE);
f2fs_folio_wait_writeback(folio, NODE, true, false);
nr_pages_to_skip(sbi, NODE))
atomic_inc(&sbi->wb_sync_req[NODE]);
else if (atomic_read(&sbi->wb_sync_req[NODE])) {
trace_f2fs_writepages(mapping->host, wbc, NODE);
diff = nr_pages_to_write(sbi, NODE, wbc);
atomic_dec(&sbi->wb_sync_req[NODE]);
trace_f2fs_writepages(mapping->host, wbc, NODE);
trace_f2fs_set_page_dirty(folio, NODE);
f2fs_folio_wait_writeback(ifolio, NODE, true, true);
f2fs_folio_wait_writeback(folio, NODE, true, true);
f2fs_folio_wait_writeback(dn.node_folio, NODE, true, true);
case NODE:
if (sit_valid_blocks[NODE] != valid_node_count(sbi)) {
sit_valid_blocks[NODE], valid_node_count(sbi));
if (sit_valid_blocks[DATA] + sit_valid_blocks[NODE] >
sit_valid_blocks[DATA], sit_valid_blocks[NODE],
holes[NODE] += f2fs_usable_blks_in_seg(sbi, segno) -
unusable = max(holes[DATA], holes[NODE]);
else if (type == NODE)
if (type == NODE)
#define SE_PAGETYPE(se) ((IS_NODESEG((se)->type) ? NODE : DATA))
NODE, true, true);
f2fs_folio_wait_writeback(xfolio, NODE, true, true);
assert(node->rightnode == NODE);
if (node->leftnode == NODE)
if (node->rightnode == NODE)
assert(tree->childnode == NODE);
if (node->rightnode == NODE) {
assert(node->leftnode == NODE);
assert(node->rightnode == NODE);
assert(tree->childnode == NODE);
if (node->leftnode == NODE)
if (node->rightnode == NODE)
if (node->leftnode == NODE)
if (node->rightnode == NODE)
assert(node->leftnode == NODE);
assert(node->rightnode == NODE);
trees[i].childnode = NODE;
if (node->rightnode == NODE) {
if (node->leftnode == NODE) {
assert(tree->childnode == NODE);
assert(node->leftnode == NODE);
assert(node->rightnode == NODE);
node->leftnode = NODE;
node->rightnode = NODE;
if (node->leftnode == NODE || node->rightnode == NODE)
if (node->leftnode == NODE && node->left) {
} else if (node->rightnode == NODE && node->right) {
node->leftnode == NODE &&
node->rightnode == NODE &&
assert(tree->childnode == NODE);
assert(node->leftnode == NODE);
assert(node->rightnode == NODE);
assert(tree->childnode == NODE);
assert(node->leftnode == NODE);
assert(node->rightnode == NODE);
assert(tree->childnode == NODE);
assert(node->leftnode == NODE);
TRACE_DEFINE_ENUM(NODE);
__entry->n_rd_peak = iostat_lat[READ_IO][NODE].peak_lat;
__entry->n_rd_avg = iostat_lat[READ_IO][NODE].avg_lat;
__entry->n_rd_cnt = iostat_lat[READ_IO][NODE].cnt;
__entry->n_wr_s_peak = iostat_lat[WRITE_SYNC_IO][NODE].peak_lat;
__entry->n_wr_s_avg = iostat_lat[WRITE_SYNC_IO][NODE].avg_lat;
__entry->n_wr_s_cnt = iostat_lat[WRITE_SYNC_IO][NODE].cnt;
__entry->n_wr_as_peak = iostat_lat[WRITE_ASYNC_IO][NODE].peak_lat;
__entry->n_wr_as_avg = iostat_lat[WRITE_ASYNC_IO][NODE].avg_lat;
__entry->n_wr_as_cnt = iostat_lat[WRITE_ASYNC_IO][NODE].cnt;
{ NODE, "NODE" }, \
tl[i++] = SDTL_INIT(sd_numa_mask, NULL, NODE);
pf(NODE) /* Node memory alloc*/ \
[C(NODE)] = (CACHE_READ | CACHE_WRITE | CACHE_PREFETCH),