* What's in linux-2.6-block.git
@ 2006-09-12 10:11 Jens Axboe
0 siblings, 0 replies; 9+ messages in thread
From: Jens Axboe @ 2006-09-12 10:11 UTC (permalink / raw)
To: linux-kernel
Hi,
This lists the main features of the 'block' branch, which is bound for
Linus when 2.6.19 opens:
- Splitting of request->flags into two parts:
- cmd type
- modified flags
Right now it's a bit of a mess, splitting this up invites a cleaner
usage and also enables us to implement generic "messages" passed on
the regular queue for the device.
- Abstract out the request back merging and put it into the core io
scheduler layer. Cleans up all the io schedulers, and noop gets
merging for "free".
- Abstract out the rbtree sorting. Gets rid of duplicated code in
as/cfq/deadline.
- General shrinkage of the request structure.
- Killing dynamic rq private structures in deadline/as/cfq. This should
speed up the io path somewhat, as we avoid allocating several
structures (struct request + scheduler private request) for each io
request.
- meta data io logging for blktrace.
- CFQ improvements.
- Make the block layer configurable through Kconfig (David Howells).
- Lots of cleanups.
The repo can be found here:
git://git.kernel.dk/data/git/linux-2.6-block.git
Andrew Morton:
CONFIG_BLOCK internal.h cleanups
CONFIG_BLOCK: blk_congestion_wait() fix
David Howells:
BLOCK: Move functions out of buffer code [try #6]
BLOCK: Remove duplicate declaration of exit_io_context() [try #6]
BLOCK: Stop fallback_migrate_page() from using page_has_buffers() [try #6]
BLOCK: Separate the bounce buffering code from the highmem code [try #6]
BLOCK: Don't call block_sync_page() from AFS [try #6]
BLOCK: Move extern declarations out of fs/*.c into header files [try #6]
BLOCK: Remove dependence on existence of blockdev_superblock [try #6]
BLOCK: Dissociate generic_writepages() from mpage stuff [try #6]
BLOCK: Move __invalidate_device() to block_dev.c [try #6]
BLOCK: Move the loop device ioctl compat stuff to the loop driver [try #6]
BLOCK: Move common FS-specific ioctls to linux/fs.h [try #6]
BLOCK: Move the ReiserFS device ioctl compat stuff to the ReiserFS driver [try #6]
BLOCK: Move the Ext2 device ioctl compat stuff to the Ext2 driver [try #6]
BLOCK: Move the Ext3 device ioctl compat stuff to the Ext3 driver [try #6]
BLOCK: Move the msdos device ioctl compat stuff to the msdos driver [try #6]
BLOCK: Remove no-longer necessary linux/mpage.h inclusions [try #6]
BLOCK: Remove no-longer necessary linux/buffer_head.h inclusions [try #6]
BLOCK: Make it possible to disable the block layer [try #6]
BLOCK: Make USB storage depend on SCSI rather than selecting it [try #6]
Jens Axboe:
Split struct request ->flags into two parts
elevator: move the backmerging logic into the elevator core
rbtree: fixed reversed RB_EMPTY_NODE and rb_next/prev
elevator: abstract out the rbtree sort handling
as-iosched: migrate to using the elevator rb functions
cfq-iosched: migrate to using the elevator rb functions
deadline-iosched: migrate to using the elevator rb functions
elevator: introduce a way to reuse rq for internal FIFO handling
cfq-iosched: convert to using the FIFO elevator defines
as-iosched: reuse rq for fifo
as-iosched: remove arq->is_sync member
deadline-iosched: remove elevator private drq request type
cfq-iosched: remove the crq flag functions/variable
Add one more pointer to struct request for IO scheduler usage
cfq-iosched: kill crq
as-iosched: kill arq
Remove ->waiting member from struct request
Remove struct request_list from struct request
Remove ->rq_status from struct request
Drop useless bio passing in may_queue/set_request API
ll_rw_blk: cleanup __make_request()
struct request: shrink and optimize some more
cfq-iosched: cleanups, fixes, dead code removal
cfq-iosched: kill cfq_exit_lock
elevator: define ioc counting mechanism
as-iosched: use new io context counting mechanism
cfq-iosched: use new io context counting mechanism
Audit block layer inlines
Kill various deprecated/unused block layer defines/functions
Make sure all block/io scheduler setups are node aware
cfq-iosched: Kill O(N) runtime of cfq_resort_rr_list()
cfq-iosched: kill the empty_list
Add blk_start_queueing() helper
cfq-iosched: improve queue preemption
ll_rw_blk: allow more flexibility for read_ahead_kb store
Allow file systems to differentiate between data and meta reads
ext3: make meta data reads use READ_META
cfq-iosched: use metadata read flag
blktrace: support for logging metadata reads
SCSI: scsi_done_q is unused
Update axboe@suse.de email address
Martin Peschke:
[Patch] blktrace: cleanup using on_each_cpu
Milan Broz:
fix creating zero sized bio mempools in low memory system
Oleg Nesterov:
exit_io_context: don't disable irqs
Don't need to disable interrupts for tasklist_lock
MAINTAINERS | 8
arch/frv/Kconfig | 4
arch/frv/kernel/time.c | 81 ++++
arch/ia64/kernel/sys_ia64.c | 28 +
arch/sparc/kernel/sys_sparc.c | 27 +
arch/sparc64/kernel/sys_sparc.c | 36 +-
arch/um/drivers/ubd_kern.c | 2
block/Kconfig | 20 +
block/Kconfig.iosched | 3
block/Makefile | 2
block/as-iosched.c | 672 +++++++-----------------------
block/blktrace.c | 26 -
block/cfq-iosched.c | 865 +++++++++++++--------------------------
block/deadline-iosched.c | 464 +++------------------
block/elevator.c | 315 ++++++++++++--
block/ll_rw_blk.c | 223 ++++------
block/noop-iosched.c | 2
block/scsi_ioctl.c | 6
drivers/block/DAC960.c | 2
drivers/block/Kconfig | 4
drivers/block/cciss.c | 1
drivers/block/cpqarray.c | 1
drivers/block/floppy.c | 4
drivers/block/loop.c | 160 +++++++
drivers/block/nbd.c | 8
drivers/block/paride/pd.c | 6
drivers/block/pktcdvd.c | 8
drivers/block/swim3.c | 4
drivers/block/swim_iop.c | 4
drivers/block/xd.c | 2
drivers/cdrom/Kconfig | 2
drivers/cdrom/cdrom.c | 2
drivers/cdrom/cdu31a.c | 4
drivers/char/Kconfig | 1
drivers/char/random.c | 4
drivers/fc4/fc.c | 1
drivers/ide/Kconfig | 4
drivers/ide/ide-cd.c | 69 ++-
drivers/ide/ide-disk.c | 5
drivers/ide/ide-dma.c | 2
drivers/ide/ide-floppy.c | 17 -
drivers/ide/ide-io.c | 50 +-
drivers/ide/ide-lib.c | 5
drivers/ide/ide-proc.c | 2
drivers/ide/ide-tape.c | 14 -
drivers/ide/ide-taskfile.c | 8
drivers/ide/ide.c | 8
drivers/ide/legacy/hd.c | 2
drivers/ide/pci/sis5513.c | 2
drivers/md/Kconfig | 3
drivers/md/dm-emc.c | 3
drivers/message/i2o/Kconfig | 2
drivers/message/i2o/i2o_block.c | 7
drivers/mmc/Kconfig | 2
drivers/mmc/Makefile | 3
drivers/mmc/mmc_queue.c | 6
drivers/mtd/Kconfig | 12 -
drivers/mtd/devices/Kconfig | 2
drivers/mtd/mtd_blkdevs.c | 2
drivers/net/Kconfig | 2
drivers/s390/block/Kconfig | 2
drivers/s390/block/dasd_diag.c | 2
drivers/s390/block/dasd_eckd.c | 2
drivers/s390/block/dasd_fba.c | 2
drivers/scsi/Kconfig | 2
drivers/scsi/aic7xxx_old.c | 4
drivers/scsi/ide-scsi.c | 16 -
drivers/scsi/pluto.c | 6
drivers/scsi/scsi.c | 13 -
drivers/scsi/scsi_lib.c | 37 +-
drivers/scsi/sd.c | 5
drivers/scsi/sun3_NCR5380.c | 2
drivers/scsi/sun3_scsi.c | 2
drivers/scsi/sun3_scsi_vme.c | 2
drivers/usb/storage/Kconfig | 5
fs/Kconfig | 31 +
fs/Makefile | 14 -
fs/afs/file.c | 2
fs/binfmt_elf.c | 1
fs/bio.c | 4
fs/block_dev.c | 23 +
fs/buffer.c | 174 --------
fs/char_dev.c | 1
fs/cifs/file.c | 1
fs/cifs/inode.c | 1
fs/cifs/ioctl.c | 7
fs/compat.c | 8
fs/compat_ioctl.c | 208 +--------
fs/dcache.c | 4
fs/ext2/dir.c | 3
fs/ext2/ext2.h | 1
fs/ext2/file.c | 6
fs/ext2/ioctl.c | 32 +
fs/ext3/dir.c | 3
fs/ext3/file.c | 3
fs/ext3/inode.c | 16 -
fs/ext3/ioctl.c | 55 ++
fs/ext3/namei.c | 3
fs/fat/dir.c | 56 +++
fs/fs-writeback.c | 9
fs/hfsplus/hfsplus_fs.h | 8
fs/hfsplus/ioctl.c | 17 -
fs/inode.c | 21 -
fs/internal.h | 55 ++
fs/ioprio.c | 19 +
fs/jfs/ioctl.c | 15 -
fs/mpage.c | 2
fs/namespace.c | 12 -
fs/nfs/direct.c | 50 ++
fs/nfs/read.c | 24 -
fs/nfs/write.c | 38 +-
fs/no-block.c | 22 +
fs/partitions/Makefile | 2
fs/proc/proc_misc.c | 11
fs/quota.c | 44 +-
fs/reiserfs/dir.c | 3
fs/reiserfs/file.c | 4
fs/reiserfs/ioctl.c | 35 ++
fs/splice.c | 2
fs/super.c | 36 ++
fs/sync.c | 113 +++++
fs/xfs/Kconfig | 1
include/asm-i386/Kbuild | 2
include/asm-ia64/mman.h | 8
include/asm-sh/page.h | 2
include/asm-sparc/mman.h | 8
include/asm-sparc64/mman.h | 8
include/linux/atmdev.h | 2
include/linux/bio.h | 2
include/linux/blkdev.h | 333 ++++++++-------
include/linux/blktrace_api.h | 3
include/linux/buffer_head.h | 19 +
include/linux/compat.h | 1
include/linux/compat_ioctl.h | 8
include/linux/elevator.h | 68 +++
include/linux/ext2_fs.h | 66 ++-
include/linux/ext3_fs.h | 26 +
include/linux/fs.h | 67 +++
include/linux/genhd.h | 4
include/linux/hrtimer.h | 1
include/linux/ktime.h | 7
include/linux/mm.h | 4
include/linux/mpage.h | 7
include/linux/nfs_fs.h | 6
include/linux/nfs_xdr.h | 4
include/linux/pci_ids.h | 2
include/linux/raid/md.h | 3
include/linux/raid/md_k.h | 3
include/linux/ramfs.h | 1
include/linux/rbtree.h | 2
include/linux/reiserfs_fs.h | 37 +-
include/linux/sched.h | 1
include/linux/sysfs.h | 9
include/linux/tty.h | 3
include/linux/writeback.h | 2
include/scsi/scsi_tcq.h | 5
init/Kconfig | 2
init/do_mounts.c | 13 +
kernel/exit.c | 1
kernel/futex.c | 84 +++-
kernel/panic.c | 2
kernel/power/Kconfig | 6
kernel/spinlock.c | 2
kernel/sys_ni.c | 5
lib/rbtree.c | 6
mm/Makefile | 4
mm/bounce.c | 302 ++++++++++++++
mm/filemap.c | 34 ++
mm/highmem.c | 281 -------------
mm/migrate.c | 4
mm/mmap.c | 17 -
mm/page-writeback.c | 143 ++++++
mm/truncate.c | 37 +-
security/seclvl.c | 4
174 files changed, 3127 insertions(+), 3080 deletions(-)
create mode 100644 fs/internal.h
create mode 100644 fs/no-block.c
create mode 100644 mm/bounce.c
--
Jens Axboe
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: What's in linux-2.6-block.git
@ 2006-09-13 10:59 Al Boldi
2006-09-13 10:59 ` Jens Axboe
0 siblings, 1 reply; 9+ messages in thread
From: Al Boldi @ 2006-09-13 10:59 UTC (permalink / raw)
To: linux-kernel
Jens Axboe wrote:
> This lists the main features of the 'block' branch, which is bound for
> Linus when 2.6.19 opens:
>
> - Splitting of request->flags into two parts:
> - cmd type
> - modified flags
> Right now it's a bit of a mess, splitting this up invites a cleaner
> usage and also enables us to implement generic "messages" passed on
> the regular queue for the device.
>
> - Abstract out the request back merging and put it into the core io
> scheduler layer. Cleans up all the io schedulers, and noop gets
> merging for "free".
>
> - Abstract out the rbtree sorting. Gets rid of duplicated code in
> as/cfq/deadline.
>
> - General shrinkage of the request structure.
>
> - Killing dynamic rq private structures in deadline/as/cfq. This should
> speed up the io path somewhat, as we avoid allocating several
> structures (struct request + scheduler private request) for each io
> request.
>
> - meta data io logging for blktrace.
>
> - CFQ improvements.
>
> - Make the block layer configurable through Kconfig (David Howells).
>
> - Lots of cleanups.
Does it also address the strange "max_sectors_kb<>192 causes a 50%-slowdown"
problem?
Thanks!
--
Al
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: What's in linux-2.6-block.git
2006-09-13 10:59 What's in linux-2.6-block.git Al Boldi
@ 2006-09-13 10:59 ` Jens Axboe
2006-09-13 11:35 ` Al Boldi
0 siblings, 1 reply; 9+ messages in thread
From: Jens Axboe @ 2006-09-13 10:59 UTC (permalink / raw)
To: Al Boldi; +Cc: linux-kernel
On Wed, Sep 13 2006, Al Boldi wrote:
> Jens Axboe wrote:
> > This lists the main features of the 'block' branch, which is bound for
> > Linus when 2.6.19 opens:
> >
> > - Splitting of request->flags into two parts:
> > - cmd type
> > - modified flags
> > Right now it's a bit of a mess, splitting this up invites a cleaner
> > usage and also enables us to implement generic "messages" passed on
> > the regular queue for the device.
> >
> > - Abstract out the request back merging and put it into the core io
> > scheduler layer. Cleans up all the io schedulers, and noop gets
> > merging for "free".
> >
> > - Abstract out the rbtree sorting. Gets rid of duplicated code in
> > as/cfq/deadline.
> >
> > - General shrinkage of the request structure.
> >
> > - Killing dynamic rq private structures in deadline/as/cfq. This should
> > speed up the io path somewhat, as we avoid allocating several
> > structures (struct request + scheduler private request) for each io
> > request.
> >
> > - meta data io logging for blktrace.
> >
> > - CFQ improvements.
> >
> > - Make the block layer configurable through Kconfig (David Howells).
> >
> > - Lots of cleanups.
>
> Does it also address the strange "max_sectors_kb<>192 causes a 50%-slowdown"
> problem?
(remember to cc me/others when replying, I can easily miss lkml
messages for several days otherwise).
It does not, the investigation of that is still pending I'm afraid. The
data is really puzzling, I'm inclined to think it's drive related. Are
you reproducing it just one box/drive, or on several?
--
Jens Axboe
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: What's in linux-2.6-block.git
2006-09-13 10:59 ` Jens Axboe
@ 2006-09-13 11:35 ` Al Boldi
2006-09-13 11:56 ` Jens Axboe
2006-09-13 14:23 ` John Stoffel
0 siblings, 2 replies; 9+ messages in thread
From: Al Boldi @ 2006-09-13 11:35 UTC (permalink / raw)
To: Jens Axboe; +Cc: linux-kernel
Jens Axboe wrote:
> On Wed, Sep 13 2006, Al Boldi wrote:
> > Jens Axboe wrote:
> > > This lists the main features of the 'block' branch, which is bound for
> > > Linus when 2.6.19 opens:
> > >
> > > - Splitting of request->flags into two parts:
> > > - cmd type
> > > - modified flags
> > > Right now it's a bit of a mess, splitting this up invites a cleaner
> > > usage and also enables us to implement generic "messages" passed on
> > > the regular queue for the device.
> > >
> > > - Abstract out the request back merging and put it into the core io
> > > scheduler layer. Cleans up all the io schedulers, and noop gets
> > > merging for "free".
> > >
> > > - Abstract out the rbtree sorting. Gets rid of duplicated code in
> > > as/cfq/deadline.
> > >
> > > - General shrinkage of the request structure.
> > >
> > > - Killing dynamic rq private structures in deadline/as/cfq. This
> > > should speed up the io path somewhat, as we avoid allocating several
> > > structures (struct request + scheduler private request) for each io
> > > request.
> > >
> > > - meta data io logging for blktrace.
> > >
> > > - CFQ improvements.
> > >
> > > - Make the block layer configurable through Kconfig (David Howells).
> > >
> > > - Lots of cleanups.
> >
> > Does it also address the strange "max_sectors_kb<>192 causes a
> > 50%-slowdown" problem?
>
> (remember to cc me/others when replying, I can easily miss lkml
> messages for several days otherwise).
>
> It does not, the investigation of that is still pending I'm afraid. The
> data is really puzzling, I'm inclined to think it's drive related. Are
> you reproducing it just one box/drive, or on several?
Several boxes, same drive.
/dev/hda:
ATA device, with non-removable media
Model Number: WDC WD1200JB-00DUA0
Serial Number: WD-WMACM1007651
Firmware Revision: 65.13G65
Standards:
Supported: 6 5 4 3
Likely used: 6
Configuration:
Logical max current
cylinders 16383 65535
heads 16 1
sectors/track 63 63
--
CHS current addressable sectors: 4128705
LBA user addressable sectors: 234441648
LBA48 user addressable sectors: 234441648
device size with M = 1024*1024: 114473 MBytes
device size with M = 1000*1000: 120034 MBytes (120 GB)
Capabilities:
LBA, IORDY(can be disabled)
bytes avail on r/w long: 98 Queue depth: 1
Standby timer values: spec'd by Standard, with device specific minimum
R/W multiple sector transfer: Max = 16 Current = 16
Recommended acoustic management value: 128, current value: 254
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow control=120ns
Commands/features:
Enabled Supported:
* READ BUFFER cmd
* WRITE BUFFER cmd
* Host Protected Area feature set
* Look-ahead
* Write cache
* Power Management feature set
Security Mode feature set
* SMART feature set
* FLUSH CACHE EXT command
* Mandatory FLUSH CACHE command
* Device Configuration Overlay feature set
* 48-bit Address feature set
Automatic Acoustic Management feature set
SET MAX security extension
* DOWNLOAD MICROCODE cmd
* SMART self-test
* SMART error logging
Security:
supported
not enabled
not locked
frozen
not expired: security count
not supported: enhanced erase
HW reset results:
CBLID- above Vih
Device num = 0 determined by the jumper
Checksum: correct
Thanks!
--
Al
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: What's in linux-2.6-block.git
2006-09-13 11:35 ` Al Boldi
@ 2006-09-13 11:56 ` Jens Axboe
2006-09-13 17:52 ` Al Boldi
2006-09-13 14:23 ` John Stoffel
1 sibling, 1 reply; 9+ messages in thread
From: Jens Axboe @ 2006-09-13 11:56 UTC (permalink / raw)
To: Al Boldi; +Cc: linux-kernel
On Wed, Sep 13 2006, Al Boldi wrote:
> Jens Axboe wrote:
> > On Wed, Sep 13 2006, Al Boldi wrote:
> > > Jens Axboe wrote:
> > > > This lists the main features of the 'block' branch, which is bound for
> > > > Linus when 2.6.19 opens:
> > > >
> > > > - Splitting of request->flags into two parts:
> > > > - cmd type
> > > > - modified flags
> > > > Right now it's a bit of a mess, splitting this up invites a cleaner
> > > > usage and also enables us to implement generic "messages" passed on
> > > > the regular queue for the device.
> > > >
> > > > - Abstract out the request back merging and put it into the core io
> > > > scheduler layer. Cleans up all the io schedulers, and noop gets
> > > > merging for "free".
> > > >
> > > > - Abstract out the rbtree sorting. Gets rid of duplicated code in
> > > > as/cfq/deadline.
> > > >
> > > > - General shrinkage of the request structure.
> > > >
> > > > - Killing dynamic rq private structures in deadline/as/cfq. This
> > > > should speed up the io path somewhat, as we avoid allocating several
> > > > structures (struct request + scheduler private request) for each io
> > > > request.
> > > >
> > > > - meta data io logging for blktrace.
> > > >
> > > > - CFQ improvements.
> > > >
> > > > - Make the block layer configurable through Kconfig (David Howells).
> > > >
> > > > - Lots of cleanups.
> > >
> > > Does it also address the strange "max_sectors_kb<>192 causes a
> > > 50%-slowdown" problem?
> >
> > (remember to cc me/others when replying, I can easily miss lkml
> > messages for several days otherwise).
> >
> > It does not, the investigation of that is still pending I'm afraid. The
> > data is really puzzling, I'm inclined to think it's drive related. Are
> > you reproducing it just one box/drive, or on several?
>
> Several boxes, same drive.
Have you / can you try and reproduce with another drive as well? It'd be
an interesting data point.
--
Jens Axboe
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: What's in linux-2.6-block.git
2006-09-13 11:35 ` Al Boldi
2006-09-13 11:56 ` Jens Axboe
@ 2006-09-13 14:23 ` John Stoffel
2006-09-13 17:52 ` Al Boldi
1 sibling, 1 reply; 9+ messages in thread
From: John Stoffel @ 2006-09-13 14:23 UTC (permalink / raw)
To: Al Boldi; +Cc: Jens Axboe, linux-kernel
>>>>> "Al" == Al Boldi <a1426z@gawab.com> writes:
Al> Jens Axboe wrote:
>> On Wed, Sep 13 2006, Al Boldi wrote:
>> > Jens Axboe wrote:
>> > > This lists the main features of the 'block' branch, which is bound for
>> > > Linus when 2.6.19 opens:
>> > >
>> > > - Splitting of request->flags into two parts:
>> > > - cmd type
>> > > - modified flags
>> > > Right now it's a bit of a mess, splitting this up invites a cleaner
>> > > usage and also enables us to implement generic "messages" passed on
>> > > the regular queue for the device.
>> > >
>> > > - Abstract out the request back merging and put it into the core io
>> > > scheduler layer. Cleans up all the io schedulers, and noop gets
>> > > merging for "free".
>> > >
>> > > - Abstract out the rbtree sorting. Gets rid of duplicated code in
>> > > as/cfq/deadline.
>> > >
>> > > - General shrinkage of the request structure.
>> > >
>> > > - Killing dynamic rq private structures in deadline/as/cfq. This
>> > > should speed up the io path somewhat, as we avoid allocating several
>> > > structures (struct request + scheduler private request) for each io
>> > > request.
>> > >
>> > > - meta data io logging for blktrace.
>> > >
>> > > - CFQ improvements.
>> > >
>> > > - Make the block layer configurable through Kconfig (David Howells).
>> > >
>> > > - Lots of cleanups.
>> >
>> > Does it also address the strange "max_sectors_kb<>192 causes a
>> > 50%-slowdown" problem?
>>
>> (remember to cc me/others when replying, I can easily miss lkml
>> messages for several days otherwise).
>>
>> It does not, the investigation of that is still pending I'm afraid. The
>> data is really puzzling, I'm inclined to think it's drive related. Are
>> you reproducing it just one box/drive, or on several?
Al> Several boxes, same drive.
Al> /dev/hda:
Al> ATA device, with non-removable media
Al> Model Number: WDC WD1200JB-00DUA0
Al> Serial Number: WD-WMACM1007651
Al> Firmware Revision: 65.13G65
Al> Standards:
Al> Supported: 6 5 4 3
Al> Likely used: 6
I've got a pair of drives which are very close in model type, and I
can run some non-destructive tests on them if you like to confirm
what's going on here if you like:
/dev/hde:
ATA device, with non-removable media
Model Number: WDC WD1200JB-00CRA1
Serial Number: WD-WMA8C4365875
Firmware Revision: 17.07W17
Standards:
Supported: 5 4 3
Likely used: 6
jfsnew:~> sudo hdparm -I /dev/hdg | head
/dev/hdg:
ATA device, with non-removable media
Model Number: WDC WD1200JB-00EVA0
Serial Number: WD-WMAEK2844058
Firmware Revision: 15.05R15
Standards:
Supported: 6 5 4
Likely used: 6
The drives have different defaul max_sectors too:
> cat /sys/block/hdg/queue/max_sectors_kb
512
> cat /sys/block/hde/queue/max_sectors_kb
128
Let me know your test method and I'll run it here and post the
results.
John
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: What's in linux-2.6-block.git
2006-09-13 11:56 ` Jens Axboe
@ 2006-09-13 17:52 ` Al Boldi
0 siblings, 0 replies; 9+ messages in thread
From: Al Boldi @ 2006-09-13 17:52 UTC (permalink / raw)
To: Jens Axboe; +Cc: linux-kernel
Jens Axboe wrote:
> On Wed, Sep 13 2006, Al Boldi wrote:
> > Jens Axboe wrote:
> > > On Wed, Sep 13 2006, Al Boldi wrote:
> > > > Jens Axboe wrote:
> > > > > This lists the main features of the 'block' branch, which is bound
> > > > > for Linus when 2.6.19 opens:
> > > > >
> > > > > - Splitting of request->flags into two parts:
> > > > > - cmd type
> > > > > - modified flags
> > > > > Right now it's a bit of a mess, splitting this up invites a
> > > > > cleaner usage and also enables us to implement generic "messages"
> > > > > passed on the regular queue for the device.
> > > > >
> > > > > - Abstract out the request back merging and put it into the core
> > > > > io scheduler layer. Cleans up all the io schedulers, and noop gets
> > > > > merging for "free".
> > > > >
> > > > > - Abstract out the rbtree sorting. Gets rid of duplicated code in
> > > > > as/cfq/deadline.
> > > > >
> > > > > - General shrinkage of the request structure.
> > > > >
> > > > > - Killing dynamic rq private structures in deadline/as/cfq. This
> > > > > should speed up the io path somewhat, as we avoid allocating
> > > > > several structures (struct request + scheduler private request)
> > > > > for each io request.
> > > > >
> > > > > - meta data io logging for blktrace.
> > > > >
> > > > > - CFQ improvements.
> > > > >
> > > > > - Make the block layer configurable through Kconfig (David
> > > > > Howells).
> > > > >
> > > > > - Lots of cleanups.
> > > >
> > > > Does it also address the strange "max_sectors_kb<>192 causes a
> > > > 50%-slowdown" problem?
> > >
> > > (remember to cc me/others when replying, I can easily miss lkml
> > > messages for several days otherwise).
> > >
> > > It does not, the investigation of that is still pending I'm afraid.
> > > The data is really puzzling, I'm inclined to think it's drive related.
> > > Are you reproducing it just one box/drive, or on several?
> >
> > Several boxes, same drive.
>
> Have you / can you try and reproduce with another drive as well? It'd be
> an interesting data point.
Not really, as this drive is the only one supporting max_sectors_kb>128.
Thanks!
--
Al
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: What's in linux-2.6-block.git
2006-09-13 14:23 ` John Stoffel
@ 2006-09-13 17:52 ` Al Boldi
2006-09-14 19:46 ` John Stoffel
0 siblings, 1 reply; 9+ messages in thread
From: Al Boldi @ 2006-09-13 17:52 UTC (permalink / raw)
To: John Stoffel; +Cc: Jens Axboe, linux-kernel
John Stoffel wrote:
> >>>>> "Al" == Al Boldi <a1426z@gawab.com> writes:
>
> Al> Jens Axboe wrote:
> >> On Wed, Sep 13 2006, Al Boldi wrote:
> >> > Jens Axboe wrote:
> >> > > This lists the main features of the 'block' branch, which is bound
> >> > > for Linus when 2.6.19 opens:
> >> > >
> >> > > - Splitting of request->flags into two parts:
> >> > > - cmd type
> >> > > - modified flags
> >> > > Right now it's a bit of a mess, splitting this up invites a
> >> > > cleaner usage and also enables us to implement generic "messages"
> >> > > passed on the regular queue for the device.
> >> > >
> >> > > - Abstract out the request back merging and put it into the core io
> >> > > scheduler layer. Cleans up all the io schedulers, and noop gets
> >> > > merging for "free".
> >> > >
> >> > > - Abstract out the rbtree sorting. Gets rid of duplicated code in
> >> > > as/cfq/deadline.
> >> > >
> >> > > - General shrinkage of the request structure.
> >> > >
> >> > > - Killing dynamic rq private structures in deadline/as/cfq. This
> >> > > should speed up the io path somewhat, as we avoid allocating
> >> > > several structures (struct request + scheduler private request) for
> >> > > each io request.
> >> > >
> >> > > - meta data io logging for blktrace.
> >> > >
> >> > > - CFQ improvements.
> >> > >
> >> > > - Make the block layer configurable through Kconfig (David
> >> > > Howells).
> >> > >
> >> > > - Lots of cleanups.
> >> >
> >> > Does it also address the strange "max_sectors_kb<>192 causes a
> >> > 50%-slowdown" problem?
> >>
> >> (remember to cc me/others when replying, I can easily miss lkml
> >> messages for several days otherwise).
> >>
> >> It does not, the investigation of that is still pending I'm afraid. The
> >> data is really puzzling, I'm inclined to think it's drive related. Are
> >> you reproducing it just one box/drive, or on several?
>
> Al> Several boxes, same drive.
>
> Al> /dev/hda:
>
> Al> ATA device, with non-removable media
> Al> Model Number: WDC WD1200JB-00DUA0
> Al> Serial Number: WD-WMACM1007651
> Al> Firmware Revision: 65.13G65
> Al> Standards:
> Al> Supported: 6 5 4 3
> Al> Likely used: 6
>
> I've got a pair of drives which are very close in model type, and I
> can run some non-destructive tests on them if you like to confirm
> what's going on here if you like:
>
> /dev/hde:
>
> ATA device, with non-removable media
> Model Number: WDC WD1200JB-00CRA1
> Serial Number: WD-WMA8C4365875
> Firmware Revision: 17.07W17
> Standards:
> Supported: 5 4 3
> Likely used: 6
> jfsnew:~> sudo hdparm -I /dev/hdg | head
>
> /dev/hdg:
>
> ATA device, with non-removable media
> Model Number: WDC WD1200JB-00EVA0
> Serial Number: WD-WMAEK2844058
> Firmware Revision: 15.05R15
> Standards:
> Supported: 6 5 4
> Likely used: 6
>
> The drives have different defaul max_sectors too:
> > cat /sys/block/hdg/queue/max_sectors_kb
>
> 512
>
> > cat /sys/block/hde/queue/max_sectors_kb
>
> 128
>
> Let me know your test method and I'll run it here and post the
> results.
Thanks for your input!
Are you running UDMA5? Can you dump the full hdparm -I
What thruput do you get with cat /dev/hd[eg] > /dev/null?
What does cat /sys/block/hde/queue/read_ahead_kb say?
Then try this for best performance:
echo 192 > /sys/block/hde/queue/max_sectors_kb
echo 192 > /sys/block/hde/queue/read_ahead_kb
and repeat the thruput test reporting vmstat results.
Thanks!
--
Al
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: What's in linux-2.6-block.git
2006-09-13 17:52 ` Al Boldi
@ 2006-09-14 19:46 ` John Stoffel
0 siblings, 0 replies; 9+ messages in thread
From: John Stoffel @ 2006-09-14 19:46 UTC (permalink / raw)
To: Al Boldi; +Cc: John Stoffel, Jens Axboe, linux-kernel
>>>>> "Al" == Al Boldi <a1426z@gawab.com> writes:
Al> Thanks for your input!
You're welcome, sorry I've been delayed in getting more details to
you. I'll try and run some tests tonight, but the six month old kept
me up alot last niht.
Al> Are you running UDMA5? Can you dump the full hdparm -I
Here's the info for each drive. They're on an HPT302 Rev 1 controller
in my system.
/dev/hde:
ATA device, with non-removable media
Model Number: WDC WD1200JB-00CRA1
Serial Number: WD-WMA8C4365875
Firmware Revision: 17.07W17
Standards:
Supported: 5 4 3
Likely used: 6
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 16514064
LBA user addressable sectors: 234441648
device size with M = 1024*1024: 114473 MBytes
device size with M = 1000*1000: 120034 MBytes (120 GB)
Capabilities:
LBA, IORDY(can be disabled)
bytes avail on r/w long: 40
Standby timer values: spec'd by Standard, with device specific
minimum
R/W multiple sector transfer: Max = 16 Current = 16
Recommended acoustic management value: 128, current value: 254
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow
control=120ns
Commands/features:
Enabled Supported:
* SMART feature set
Security Mode feature set
* Power Management feature set
* Write cache
* Look-ahead
* Host Protected Area feature set
* WRITE_BUFFER command
* READ_BUFFER command
* DOWNLOAD_MICROCODE
SET_MAX security extension
Automatic Acoustic Management feature set
* Device Configuration Overlay feature set
* SMART error logging
* SMART self-test
Security:
supported
not enabled
not locked
not frozen
not expired: security count
not supported: enhanced erase
HW reset results:
CBLID- above Vih
Device num = 0 determined by the jumper
Checksum: correct
/dev/hdg:
ATA device, with non-removable media
Model Number: WDC WD1200JB-00EVA0
Serial Number: WD-WMAEK2844058
Firmware Revision: 15.05R15
Standards:
Supported: 6 5 4
Likely used: 6
Configuration:
Logical max current
cylinders 16383 65535
heads 16 1
sectors/track 63 63
--
CHS current addressable sectors: 4128705
LBA user addressable sectors: 234441648
LBA48 user addressable sectors: 234441648
device size with M = 1024*1024: 114473 MBytes
device size with M = 1000*1000: 120034 MBytes (120 GB)
Capabilities:
LBA, IORDY(can be disabled)
Standby timer values: spec'd by Standard, with device specific
minimum
R/W multiple sector transfer: Max = 16 Current = 16
Recommended acoustic management value: 128, current value: 254
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow
control=120ns
Commands/features:
Enabled Supported:
* SMART feature set
Security Mode feature set
* Power Management feature set
* Write cache
* Look-ahead
* Host Protected Area feature set
* WRITE_BUFFER command
* READ_BUFFER command
* DOWNLOAD_MICROCODE
SET_MAX security extension
Automatic Acoustic Management feature set
* 48-bit Address feature set
* Device Configuration Overlay feature set
* Mandatory FLUSH_CACHE
* FLUSH_CACHE_EXT
* SMART error logging
* SMART self-test
Security:
supported
not enabled
not locked
not frozen
not expired: security count
not supported: enhanced erase
HW reset results:
CBLID- above Vih
Device num = 0 determined by CSEL
Checksum: correct
Al> What thruput do you get with cat /dev/hd[eg] > /dev/null?
Al> What does cat /sys/block/hde/queue/read_ahead_kb say?
> cat /sys/block/hde/queue/max_hw_sectors_kb
128
> cat /sys/block/hde/queue/max_sectors_kb
128
> cat /sys/block/hde/queue/read_ahead_kb
1024
> cat /sys/block/hde/queue/scheduler
noop [anticipatory] deadline cfq
> cat /sys/block/hde/queue/nr_requests
128
> cat /sys/block/hdg/queue/max_hw_sectors_kb
1024
> cat /sys/block/hdg/queue/max_sectors_kb
512
> cat /sys/block/hdg/queue/read_ahead_kb
1024
> cat /sys/block/hdg/queue/scheduler
noop [anticipatory] deadline cfq
> cat /sys/block/hdg/queue/nr_requests
128
Al> Then try this for best performance:
Al> echo 192 > /sys/block/hde/queue/max_sectors_kb
Al> echo 192 > /sys/block/hde/queue/read_ahead_kb
Al> and repeat the thruput test reporting vmstat results.
I'll try and do this all tonight if I get a chance.
>From looking at my setup, I've got two identical drives which are
slightly different in terms of BIOS levels, as well as in native
capabilities, so this should be a useful test.
I've got a third drive of the same type, but it's in a USB/FireWire
enclosure and I can't hdparm it directly.
John
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2006-09-14 19:46 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-13 10:59 What's in linux-2.6-block.git Al Boldi
2006-09-13 10:59 ` Jens Axboe
2006-09-13 11:35 ` Al Boldi
2006-09-13 11:56 ` Jens Axboe
2006-09-13 17:52 ` Al Boldi
2006-09-13 14:23 ` John Stoffel
2006-09-13 17:52 ` Al Boldi
2006-09-14 19:46 ` John Stoffel
-- strict thread matches above, loose matches on Subject: below --
2006-09-12 10:11 Jens Axboe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox