+4
−1
Loading
When __pcs_replace_empty_main() fails to obtain a full sheaf directly from the barn, it may either: - Refill an empty sheaf obtained via barn_get_empty_sheaf(), or - Allocate a brand new full sheaf via alloc_full_sheaf(). After reacquiring the per-CPU lock, if pcs->main is still empty and pcs->spare is NULL, the current code donates the empty main sheaf to the barn via barn_put_empty_sheaf() and installs the full sheaf as pcs->main, leaving pcs->spare unpopulated. Instead, keep the existing empty main sheaf locally as the spare: pcs->spare = pcs->main; pcs->main = full; This populates pcs->spare earlier, which can reduce future barn traffic. Suggested-by:Vlastimil Babka <vbabka@suse.cz> Signed-off-by:
Hao Li <haolee.swjtu@gmail.com> Reviewed-by:
Harry Yoo <harry.yoo@oracle.com> Signed-off-by:
Vlastimil Babka <vbabka@suse.cz> Tested-by:
Zhao Liu <zhao1.liu@intel.com>