mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
UBIFS: improve budgeting dump
Dump available space calculated by budgeting subsystem. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
This commit is contained in:
parent
24fa9e9438
commit
21a6025897
@ -713,8 +713,8 @@ void ubifs_release_dirty_inode_budget(struct ubifs_info *c,
|
||||
* (e.g., via the 'statfs()' call) reports that it has N bytes available, they
|
||||
* are able to write a file of size N. UBIFS attaches node headers to each data
|
||||
* node and it has to write indexind nodes as well. This introduces additional
|
||||
* overhead, and UBIFS it has to report sligtly less free space to meet the
|
||||
* above expectetion.
|
||||
* overhead, and UBIFS has to report sligtly less free space to meet the above
|
||||
* expectetions.
|
||||
*
|
||||
* This function assumes free space is made up of uncompressed data nodes and
|
||||
* full index nodes (one per data node, tripled because we always allow enough
|
||||
|
@ -597,7 +597,9 @@ void dbg_dump_budg(struct ubifs_info *c)
|
||||
struct rb_node *rb;
|
||||
struct ubifs_bud *bud;
|
||||
struct ubifs_gced_idx_leb *idx_gc;
|
||||
long long available, outstanding, free;
|
||||
|
||||
ubifs_assert(spin_is_locked(&c->space_lock));
|
||||
spin_lock(&dbg_lock);
|
||||
printk(KERN_DEBUG "(pid %d) Budgeting info: budg_data_growth %lld, "
|
||||
"budg_dd_growth %lld, budg_idx_growth %lld\n", current->pid,
|
||||
@ -630,6 +632,17 @@ void dbg_dump_budg(struct ubifs_info *c)
|
||||
printk(KERN_DEBUG "\tGC'ed idx LEB %d unmap %d\n",
|
||||
idx_gc->lnum, idx_gc->unmap);
|
||||
printk(KERN_DEBUG "\tcommit state %d\n", c->cmt_state);
|
||||
|
||||
/* Print budgeting predictions */
|
||||
available = ubifs_calc_available(c, c->min_idx_lebs);
|
||||
outstanding = c->budg_data_growth + c->budg_dd_growth;
|
||||
if (available > outstanding)
|
||||
free = ubifs_reported_space(c, available - outstanding);
|
||||
else
|
||||
free = 0;
|
||||
printk(KERN_DEBUG "Budgeting predictions:\n");
|
||||
printk(KERN_DEBUG "\tavailable: %lld, outstanding %lld, free %lld\n",
|
||||
available, outstanding, free);
|
||||
spin_unlock(&dbg_lock);
|
||||
}
|
||||
|
||||
|
@ -419,7 +419,7 @@ struct ubifs_unclean_leb {
|
||||
*
|
||||
* LPROPS_UNCAT: not categorized
|
||||
* LPROPS_DIRTY: dirty > 0, not index
|
||||
* LPROPS_DIRTY_IDX: dirty + free > UBIFS_CH_SZ and index
|
||||
* LPROPS_DIRTY_IDX: dirty + free > @c->min_idx_node_sze and index
|
||||
* LPROPS_FREE: free > 0, not empty, not index
|
||||
* LPROPS_HEAP_CNT: number of heaps used for storing categorized LEBs
|
||||
* LPROPS_EMPTY: LEB is empty, not taken
|
||||
|
Loading…
Reference in New Issue
Block a user