lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4FDA4683.6030905@free.fr>
Date:	Thu, 14 Jun 2012 22:16:03 +0200
From:	Wallak <wallak@...e.fr>
To:	Johannes Weiner <jweiner@...hat.com>
CC:	Jan Kara <jack@...e.cz>, linux-kernel@...r.kernel.org
Subject: Re: File copy is very slow on linux-3.4.2 (or linux-3.3x) on a specific
 hardware: AMD FX-8150 + 990FX (solved?)

Johannes Weiner wrote:
> On Wed, Jun 13, 2012 at 10:37:05PM +0200, Wallak wrote:
>> Jan Kara wrote:
>>> On Wed 13-06-12 00:41:25, Wallak wrote:
>>>> Jan Kara wrote:
>>>>> On Tue 12-06-12 20:39:32, Wallak wrote:
>>>>>> Jan Kara wrote:
>>>>>>> On Mon 11-06-12 21:54:16, wallak@...e.fr wrote:
>>>>>>>> I've a very annoying issue on recent kernel (linux-3.4.2-SMP) with my main motherboard (AMD FX-8150 + 990FX - 8 cores 4.1GHz), file copy is very slow (see below). The same kernel works flawlessly on an AMD E450 2 cores motherboard.
>>>>>>>>
>>>>>>>> Linux-3.2.20 works properly on this hardware.
>>>>>>>> hdparm -t gives good results on both kernels.
>>>>>>>>
>>>>>>>> I've no idea where this bug come from. Do you have this issue on your hardware ? A patch is available ?
>>>>>>>>
>>>>>>>>
>>>>>>>> *linux-3.4.2
>>>>>>>> dd if=../in/file_8gb.tmp of=tmp.tmp bs=1024k count=100
>>>>>>>> 100+0 records in
>>>>>>>> 100+0 records out
>>>>>>>> 104857600 bytes (105 MB) copied, 132.884 s, 789 kB/s
>>>>>>>>
>>>>>>>>
>>>>>>>> *linux-3.2.20
>>>>>>>> dd if=../in/file_8gb.tmp of=tmp.tmp bs=1024k count=100
>>>>>>>> 100+0 records in
>>>>>>>> 100+0 records out
>>>>>>>> 104857600 bytes (105 MB) copied, 3.30793 s, 31.7 MB/s
>>>>>>>    So let's separate reading and writing part first. What is the speed of
>>>>>>> dd if=../in/file_8gb.tmp of=/dev/null bs=1M count=100
>>>>>>>    on both kernels?
>>>>>>> And what is the speed of:
>>>>>>> dd if=/dev/zero of=tmp.tm bs=1M count=100
>>>>>> You're right, the issue is only while writing. The results are below:
>>>>>>
>>>>>> #linux-3.4.2
>>>>>> dd if=/dev/zero of=tmp.tm bs=1M count=100
>>>>>> 100+0 records in
>>>>>> 100+0 records out
>>>>>> 104857600 bytes (105 MB) copied, 151.347 s, 693 kB/s
>>>>>> dd if=../in/file_8gb.tmp of=/dev/null bs=1M count=100
>>>>>> 100+0 records in
>>>>>> 100+0 records out
>>>>>> 104857600 bytes (105 MB) copied, 1.26228 s, 83.1 MB/s
>>>>>>
>>>>>> #linux-3.2.20
>>>>>> dd if=/dev/zero of=tmp.tm bs=1M count=100
>>>>>> 100+0 records in
>>>>>> 100+0 records out
>>>>>> 104857600 bytes (105 MB) copied, 1.00838 s, 104 MB/s
>>>>>> dd if=../in/file_8gb.tmp of=/dev/null bs=1M count=100
>>>>>> 100+0 records in
>>>>>> 100+0 records out
>>>>>> 104857600 bytes (105 MB) copied, 1.26947 s, 82.6 MB/s
>>>>>>
>>>>>>
>>>>>>>    Also what filesystems are you using?
>>>>>> This is an ext2 file system:
>>>>>>
>>>>>> /dev/sda6      ext2    464463364 323380956 141082408  70% /backup
>>>>>    OK, I'm surprised by one thing - how come the writes do no end up cached
>>>>> in memory (thus you should get much higher throughput). Is the filesystem
>>>>> mounted with -o sync option by any chance?
>>>>>
>>>>> 								Honza
>>>>      I've tried with an nfs mounted drive, the issue is still there,
>>>> it seems to be global. With sync enabled, the output is quite
>>>> faster, that's quite unexpected.
>>>> On my AMD E450 motherboard this kernel works fine - Are you able to
>>>> reproduce this behavior ?
>>>>
>>>>
>>>> #/dev/sda6 /backup ext2 rw,relatime,errors=continue 0 0
>>>> (/proc/mount)
>>>> 100+0 records in
>>>> 100+0 records out
>>>> 104857600 bytes (105 MB) copied, 155.407 s, 675 kB/s
>>>>
>>>> #/dev/sda6 /backup ext2 rw,sync,relatime,errors=continue 0 0
>>>> 100+0 records in
>>>> 100+0 records out
>>>> 104857600 bytes (105 MB) copied, 69.7868 s, 1.5 MB/s
>>>>
>>>> #nfs drive - same issue:
>>>> 100+0 records in
>>>> 100+0 records out
>>>> 104857600 bytes (105 MB) copied, 221.572 s, 473 kB/s
>>>    That's really curious. I have not seen your issue although I use current
>>> kernels for development&   testing a lot. Also if it was some generic issue
>>> with 3.4 I'm pretty sure we would have heard *much* more complaints from
>>> other users as well. So I think it must be something specific to your setup
>>> / kernel config.
>> I've bisected the linux kernel, and I've found the commit that is
>> related to this issue:
>> commit ab8fabd46f811d5153d8a0cd2fac9a0d41fb593d
>> Author: Johannes Weiner<jweiner@...hat.com>
>> Date:   Tue Jan 10 15:07:42 2012 -0800
>>
>>      mm: exclude reserved pages from dirtyable memory
> Thanks for the bisect, this makes sense.
>
>> HighTotal:       8052692 kB
>> HighTotal:       8052692 kB
>> HighFree:        7978664 kB                                   |
>> HighFree:        6227412 kB
>> LowTotal:         229508 kB
>> LowTotal:         229508 kB
>> LowFree:          195804 kB                                   |
>> LowFree:          148948 kB
> 224M total lowmem with 8G highmem.  Sigh.  Even without this patch,
> the standard dirty ratios would grant you only 29MB of dirty pages.
> Subtracting the dirty reserves will take the rest.
>
> You can make highmem dirtyable by setting
>
> 	sysctl vm.highmem_is_dirtyable=1
>
> But this will make the number of dirtyable pages very high compared to
> your lowmem.
>
> I wonder if it would be best to just enforce a minimum amount of
> dirtyable memory.  A percentage of lowmem or so to keep it from
> expanding with highmem.
>

You're right, it is probably advisable to set a minimum value, or at 
least to display a warning message. This is probably a rare case 
depending on the memory configuration, but it may occur.

Thanks,

                                                                         
     Wallak.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ