diff options
author | Jens Axboe <axboe@suse.de> | 2006-06-13 02:26:10 -0400 |
---|---|---|
committer | Jens Axboe <axboe@nelson.home.kernel.dk> | 2006-06-23 11:10:39 -0400 |
commit | b31dc66a54ad986b6b73bdc49c8efc17cbad1833 (patch) | |
tree | 5591383c1cbffe11512da889c971f899333f1a44 /include/linux | |
parent | 271f18f102c789f59644bb6c53a69da1df72b2f4 (diff) |
[PATCH] Kill PF_SYNCWRITE flag
A process flag to indicate whether we are doing sync io is incredibly
ugly. It also causes performance problems when one does a lot of async
io and then proceeds to sync it. Part of the io will go out as async,
and the other part as sync. This causes a disconnect between the
previously submitted io and the synced io. For io schedulers such as CFQ,
this will cause us lost merges and suboptimal behaviour in scheduling.
Remove PF_SYNCWRITE completely from the fsync/msync paths, and let
the O_DIRECT path just directly indicate that the writes are sync
by using WRITE_SYNC instead.
Signed-off-by: Jens Axboe <axboe@suse.de>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/blkdev.h | 2 | ||||
-rw-r--r-- | include/linux/sched.h | 11 |
2 files changed, 7 insertions, 6 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 3457e7b97363..482a21d67627 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -241,6 +241,7 @@ enum rq_flag_bits { | |||
241 | __REQ_PM_RESUME, /* resume request */ | 241 | __REQ_PM_RESUME, /* resume request */ |
242 | __REQ_PM_SHUTDOWN, /* shutdown request */ | 242 | __REQ_PM_SHUTDOWN, /* shutdown request */ |
243 | __REQ_ORDERED_COLOR, /* is before or after barrier */ | 243 | __REQ_ORDERED_COLOR, /* is before or after barrier */ |
244 | __REQ_RW_SYNC, /* request is sync (O_DIRECT) */ | ||
244 | __REQ_NR_BITS, /* stops here */ | 245 | __REQ_NR_BITS, /* stops here */ |
245 | }; | 246 | }; |
246 | 247 | ||
@@ -270,6 +271,7 @@ enum rq_flag_bits { | |||
270 | #define REQ_PM_RESUME (1 << __REQ_PM_RESUME) | 271 | #define REQ_PM_RESUME (1 << __REQ_PM_RESUME) |
271 | #define REQ_PM_SHUTDOWN (1 << __REQ_PM_SHUTDOWN) | 272 | #define REQ_PM_SHUTDOWN (1 << __REQ_PM_SHUTDOWN) |
272 | #define REQ_ORDERED_COLOR (1 << __REQ_ORDERED_COLOR) | 273 | #define REQ_ORDERED_COLOR (1 << __REQ_ORDERED_COLOR) |
274 | #define REQ_RW_SYNC (1 << __REQ_RW_SYNC) | ||
273 | 275 | ||
274 | /* | 276 | /* |
275 | * State information carried for REQ_PM_SUSPEND and REQ_PM_RESUME | 277 | * State information carried for REQ_PM_SUSPEND and REQ_PM_RESUME |
diff --git a/include/linux/sched.h b/include/linux/sched.h index a9d23c7d1b25..38b4791e6a5d 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -941,12 +941,11 @@ static inline void put_task_struct(struct task_struct *t) | |||
941 | #define PF_KSWAPD 0x00040000 /* I am kswapd */ | 941 | #define PF_KSWAPD 0x00040000 /* I am kswapd */ |
942 | #define PF_SWAPOFF 0x00080000 /* I am in swapoff */ | 942 | #define PF_SWAPOFF 0x00080000 /* I am in swapoff */ |
943 | #define PF_LESS_THROTTLE 0x00100000 /* Throttle me less: I clean memory */ | 943 | #define PF_LESS_THROTTLE 0x00100000 /* Throttle me less: I clean memory */ |
944 | #define PF_SYNCWRITE 0x00200000 /* I am doing a sync write */ | 944 | #define PF_BORROWED_MM 0x00200000 /* I am a kthread doing use_mm */ |
945 | #define PF_BORROWED_MM 0x00400000 /* I am a kthread doing use_mm */ | 945 | #define PF_RANDOMIZE 0x00400000 /* randomize virtual address space */ |
946 | #define PF_RANDOMIZE 0x00800000 /* randomize virtual address space */ | 946 | #define PF_SWAPWRITE 0x00800000 /* Allowed to write to swap */ |
947 | #define PF_SWAPWRITE 0x01000000 /* Allowed to write to swap */ | 947 | #define PF_SPREAD_PAGE 0x01000000 /* Spread page cache over cpuset */ |
948 | #define PF_SPREAD_PAGE 0x04000000 /* Spread page cache over cpuset */ | 948 | #define PF_SPREAD_SLAB 0x02000000 /* Spread some slab caches over cpuset */ |
949 | #define PF_SPREAD_SLAB 0x08000000 /* Spread some slab caches over cpuset */ | ||
950 | #define PF_MEMPOLICY 0x10000000 /* Non-default NUMA mempolicy */ | 949 | #define PF_MEMPOLICY 0x10000000 /* Non-default NUMA mempolicy */ |
951 | 950 | ||
952 | /* | 951 | /* |