forked from mirrors/linux
		
	writeback: remove writeback_control.more_io
When wbc.more_io was first introduced, it indicates whether there are at least one superblock whose s_more_io contains more IO work. Now with the per-bdi writeback, it can be replaced with a simple b_more_io test. Acked-by: Jan Kara <jack@suse.cz> Acked-by: Mel Gorman <mel@csn.ul.ie> Reviewed-by: Minchan Kim <minchan.kim@gmail.com> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
This commit is contained in:
		
							parent
							
								
									3efaf0faba
								
							
						
					
					
						commit
						b7a2441f99
					
				
					 4 changed files with 5 additions and 16 deletions
				
			
		| 
						 | 
					@ -560,12 +560,8 @@ static int writeback_sb_inodes(struct super_block *sb, struct bdi_writeback *wb,
 | 
				
			||||||
		iput(inode);
 | 
							iput(inode);
 | 
				
			||||||
		cond_resched();
 | 
							cond_resched();
 | 
				
			||||||
		spin_lock(&wb->list_lock);
 | 
							spin_lock(&wb->list_lock);
 | 
				
			||||||
		if (wbc->nr_to_write <= 0) {
 | 
							if (wbc->nr_to_write <= 0)
 | 
				
			||||||
			wbc->more_io = 1;
 | 
					 | 
				
			||||||
			return 1;
 | 
								return 1;
 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if (!list_empty(&wb->b_more_io))
 | 
					 | 
				
			||||||
			wbc->more_io = 1;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	/* b_io is empty */
 | 
						/* b_io is empty */
 | 
				
			||||||
	return 1;
 | 
						return 1;
 | 
				
			||||||
| 
						 | 
					@ -708,7 +704,6 @@ static long wb_writeback(struct bdi_writeback *wb,
 | 
				
			||||||
			wbc.older_than_this = &oldest_jif;
 | 
								wbc.older_than_this = &oldest_jif;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		wbc.more_io = 0;
 | 
					 | 
				
			||||||
		wbc.nr_to_write = write_chunk;
 | 
							wbc.nr_to_write = write_chunk;
 | 
				
			||||||
		wbc.pages_skipped = 0;
 | 
							wbc.pages_skipped = 0;
 | 
				
			||||||
		wbc.inodes_written = 0;
 | 
							wbc.inodes_written = 0;
 | 
				
			||||||
| 
						 | 
					@ -740,7 +735,7 @@ static long wb_writeback(struct bdi_writeback *wb,
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		 * No more inodes for IO, bail
 | 
							 * No more inodes for IO, bail
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		if (!wbc.more_io)
 | 
							if (list_empty(&wb->b_more_io))
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		 * Nothing written. Wait for some inode to
 | 
							 * Nothing written. Wait for some inode to
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -46,7 +46,6 @@ struct writeback_control {
 | 
				
			||||||
	unsigned tagged_writepages:1;	/* tag-and-write to avoid livelock */
 | 
						unsigned tagged_writepages:1;	/* tag-and-write to avoid livelock */
 | 
				
			||||||
	unsigned for_reclaim:1;		/* Invoked from the page allocator */
 | 
						unsigned for_reclaim:1;		/* Invoked from the page allocator */
 | 
				
			||||||
	unsigned range_cyclic:1;	/* range_start is cyclic */
 | 
						unsigned range_cyclic:1;	/* range_start is cyclic */
 | 
				
			||||||
	unsigned more_io:1;		/* more io to be dispatched */
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -404,7 +404,6 @@ TRACE_EVENT(ext4_da_writepages_result,
 | 
				
			||||||
		__field(	int,	pages_written		)
 | 
							__field(	int,	pages_written		)
 | 
				
			||||||
		__field(	long,	pages_skipped		)
 | 
							__field(	long,	pages_skipped		)
 | 
				
			||||||
		__field(	int,	sync_mode		)
 | 
							__field(	int,	sync_mode		)
 | 
				
			||||||
		__field(	char,	more_io			)	
 | 
					 | 
				
			||||||
		__field(       pgoff_t,	writeback_index		)
 | 
							__field(       pgoff_t,	writeback_index		)
 | 
				
			||||||
	),
 | 
						),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -415,16 +414,15 @@ TRACE_EVENT(ext4_da_writepages_result,
 | 
				
			||||||
		__entry->pages_written	= pages_written;
 | 
							__entry->pages_written	= pages_written;
 | 
				
			||||||
		__entry->pages_skipped	= wbc->pages_skipped;
 | 
							__entry->pages_skipped	= wbc->pages_skipped;
 | 
				
			||||||
		__entry->sync_mode	= wbc->sync_mode;
 | 
							__entry->sync_mode	= wbc->sync_mode;
 | 
				
			||||||
		__entry->more_io	= wbc->more_io;
 | 
					 | 
				
			||||||
		__entry->writeback_index = inode->i_mapping->writeback_index;
 | 
							__entry->writeback_index = inode->i_mapping->writeback_index;
 | 
				
			||||||
	),
 | 
						),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
 | 
						TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
 | 
				
			||||||
		  " more_io %d sync_mode %d writeback_index %lu",
 | 
							  "sync_mode %d writeback_index %lu",
 | 
				
			||||||
		  MAJOR(__entry->dev), MINOR(__entry->dev),
 | 
							  MAJOR(__entry->dev), MINOR(__entry->dev),
 | 
				
			||||||
		  (unsigned long) __entry->ino, __entry->ret,
 | 
							  (unsigned long) __entry->ino, __entry->ret,
 | 
				
			||||||
		  __entry->pages_written, __entry->pages_skipped,
 | 
							  __entry->pages_written, __entry->pages_skipped,
 | 
				
			||||||
		  __entry->more_io, __entry->sync_mode,
 | 
							  __entry->sync_mode,
 | 
				
			||||||
		  (unsigned long) __entry->writeback_index)
 | 
							  (unsigned long) __entry->writeback_index)
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -101,7 +101,6 @@ DECLARE_EVENT_CLASS(wbc_class,
 | 
				
			||||||
		__field(int, for_background)
 | 
							__field(int, for_background)
 | 
				
			||||||
		__field(int, for_reclaim)
 | 
							__field(int, for_reclaim)
 | 
				
			||||||
		__field(int, range_cyclic)
 | 
							__field(int, range_cyclic)
 | 
				
			||||||
		__field(int, more_io)
 | 
					 | 
				
			||||||
		__field(unsigned long, older_than_this)
 | 
							__field(unsigned long, older_than_this)
 | 
				
			||||||
		__field(long, range_start)
 | 
							__field(long, range_start)
 | 
				
			||||||
		__field(long, range_end)
 | 
							__field(long, range_end)
 | 
				
			||||||
| 
						 | 
					@ -116,7 +115,6 @@ DECLARE_EVENT_CLASS(wbc_class,
 | 
				
			||||||
		__entry->for_background	= wbc->for_background;
 | 
							__entry->for_background	= wbc->for_background;
 | 
				
			||||||
		__entry->for_reclaim	= wbc->for_reclaim;
 | 
							__entry->for_reclaim	= wbc->for_reclaim;
 | 
				
			||||||
		__entry->range_cyclic	= wbc->range_cyclic;
 | 
							__entry->range_cyclic	= wbc->range_cyclic;
 | 
				
			||||||
		__entry->more_io	= wbc->more_io;
 | 
					 | 
				
			||||||
		__entry->older_than_this = wbc->older_than_this ?
 | 
							__entry->older_than_this = wbc->older_than_this ?
 | 
				
			||||||
						*wbc->older_than_this : 0;
 | 
											*wbc->older_than_this : 0;
 | 
				
			||||||
		__entry->range_start	= (long)wbc->range_start;
 | 
							__entry->range_start	= (long)wbc->range_start;
 | 
				
			||||||
| 
						 | 
					@ -124,7 +122,7 @@ DECLARE_EVENT_CLASS(wbc_class,
 | 
				
			||||||
	),
 | 
						),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	TP_printk("bdi %s: towrt=%ld skip=%ld mode=%d kupd=%d "
 | 
						TP_printk("bdi %s: towrt=%ld skip=%ld mode=%d kupd=%d "
 | 
				
			||||||
		"bgrd=%d reclm=%d cyclic=%d more=%d older=0x%lx "
 | 
							"bgrd=%d reclm=%d cyclic=%d older=0x%lx "
 | 
				
			||||||
		"start=0x%lx end=0x%lx",
 | 
							"start=0x%lx end=0x%lx",
 | 
				
			||||||
		__entry->name,
 | 
							__entry->name,
 | 
				
			||||||
		__entry->nr_to_write,
 | 
							__entry->nr_to_write,
 | 
				
			||||||
| 
						 | 
					@ -134,7 +132,6 @@ DECLARE_EVENT_CLASS(wbc_class,
 | 
				
			||||||
		__entry->for_background,
 | 
							__entry->for_background,
 | 
				
			||||||
		__entry->for_reclaim,
 | 
							__entry->for_reclaim,
 | 
				
			||||||
		__entry->range_cyclic,
 | 
							__entry->range_cyclic,
 | 
				
			||||||
		__entry->more_io,
 | 
					 | 
				
			||||||
		__entry->older_than_this,
 | 
							__entry->older_than_this,
 | 
				
			||||||
		__entry->range_start,
 | 
							__entry->range_start,
 | 
				
			||||||
		__entry->range_end)
 | 
							__entry->range_end)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue