From: Gernot Hillier <gernot.hillier@siemens.com>
To: "Theodore Ts'o" <tytso@mit.edu>,
linux-scsi@vger.kernel.org, MPT-FusionLinux.pdl@broadcom.com
Cc: linux-ext4@vger.kernel.org, sathya.prakash@broadcom.com,
chaitra.basappa@broadcom.com,
suganath-prabu.subramani@broadcom.com
Subject: Re: unexpected sync delays in dpkg for small pre-allocated files on ext4
Date: Mon, 30 May 2016 10:27:52 +0200 [thread overview]
Message-ID: <574BF988.5050202@siemens.com> (raw)
In-Reply-To: <20160524231328.GB387@thunk.org>
Hi!
On 25.05.2016 01:13, Theodore Ts'o wrote:
> On Tue, May 24, 2016 at 07:07:41PM +0200, Gernot Hillier wrote:
>> We experience strange delays with kernel 4.1.18 during dpkg
>> package installation on an ext4 filesystem after switching from
>> Ubuntu 14.04 to 16.04. We can reproduce the issue with kernel 4.6.
>> Installation of the same package takes 2s with ext3 and 31s with
>> ext4 on the same partition.
>>
>> Hardware is an Intel-based server with Supermicro X8DTH board and
>> Seagate ST973451SS disks connected to an LSI SAS2008 controller (PCI
>> 0x1000:0x0072, mpt2sas driver).
[...]
>> To me, the problem looks comparable to
>> https://bugzilla.kernel.org/show_bug.cgi?id=56821 (even if we don't see
>> a full hang and there's no RAID involved for us), so a closer look on
>> the SCSI layer or driver might be the next step?
>
> What I would suggest is to create a small test case which compares the
> time it takes to allocate 1 megabyte of memory, zero it, and then
> write one megabytes of zeros using the write(2) system call. Then try
> writing one megabytes of zero using the BLKZEROOUT ioctl.
Ok, this is my test code:
const int SIZE = 1*1024*1024;
char* buffer = malloc(SIZE);
uint64_t range[2] = { 0, SIZE };
int fd = open("/dev/sdb2", O_WRONLY);
bzero(buffer, SIZE);
write(fd, buffer, SIZE);
sync_file_range(fd, 0, 0, 2);
ioctl (fd, BLKZEROOUT, range);
close(fd);
free(buffer);
# strace -tt ./test-tytso
[...]
15:46:27.481636 open("/dev/sdb2", O_WRONLY) = 3
15:46:27.482004 write(3, "\0\0\0\0\0\0"..., 1048576) = 1048576
15:46:27.482438 sync_file_range(3, 0, 0, SYNC_FILE_RANGE_WRITE) = 0
15:46:27.482698 ioctl(3, BLKZEROOUT, [0, 100000]) = 0
15:46:27.546971 close(3) = 0
So the write() and sync_file_range() in the first case takes ~400 us
each while BLKZEROOUT takes... 60 ms. Wow.
> I'm pretty sure you'll see same issue with BLKZEROOUT ioctl, but at
> this point, we'll be able to send bug reports to the SCSI and block
> layer developers with something that makes this very clear that it has
> nothing to do with ext4.
Ok, I included linux-scsi and mpt2sas maintainers to the thread. Can you
please help to narrow this down further?
> This way we can also do some differential diagnosis; given that I'm
> not seeing this complaint from most people, I suspect it will be a
> matter of adding some specific devices to a blacklist (so that even
> though the SCSI device claims to support WRITE SAME, we need to
> disable it because it has a really lousy implementation of the SCSI
> WRITE SAME command).
Even a BLKZEROOUT for 512 bytes takes nearly 5 ms on this machine. This
really qualifies as "lousy implementation".
Any idea how I could find out whether disks or controller are to blame
here? Getting physical access to the machine and replacing disks might
take us some days, so any other suggestion is greatly appreciated!
--
With kind regards,
Gernot Hillier, Siemens AG
Corporate Technology, Corporate Competence Center Embedded Linux
next prev parent reply other threads:[~2016-05-30 8:27 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-24 17:07 unexpected sync delays in dpkg for small pre-allocated files on ext4 Gernot Hillier
2016-05-24 23:13 ` Theodore Ts'o
2016-05-30 8:27 ` Gernot Hillier [this message]
2016-05-31 0:21 ` Dave Chinner
2016-06-01 9:44 ` Gernot Hillier
2016-06-01 13:17 ` Gernot Hillier
2016-06-01 14:12 ` Theodore Ts'o
2016-06-02 16:23 ` Gernot Hillier
2016-07-13 13:57 ` Gernot Hillier
2016-05-26 2:20 ` Dave Chinner
2016-05-26 7:02 ` Christoph Hellwig
-- strict thread matches above, loose matches on Subject: below --
2016-05-30 19:04 Jun He
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=574BF988.5050202@siemens.com \
--to=gernot.hillier@siemens.com \
--cc=MPT-FusionLinux.pdl@broadcom.com \
--cc=chaitra.basappa@broadcom.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=sathya.prakash@broadcom.com \
--cc=suganath-prabu.subramani@broadcom.com \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.