Re: [git patches] IDE update

Ondrej Zary
2005-07-05T15:14:50Z

[-- Attachment #1: Type: text/plain, Size: 1664 bytes --]

Jens Axboe wrote:
> On Tue, Jul 05 2005, Ondrej Zary wrote:
>
>>Jens Axboe wrote:
>>
>>>On Tue, 2005-07-05 at 15:02 +0200, Ondrej Zary wrote:
>>>
>>>
>>>>>Ok, looks alright for both. Your machine is quite slow, perhaps that is
>>>>>showing the slower performance. Can you try and make HZ 100 in 2.6 and
>>>>>test again? 2.6.13-recent has it as a config option, otherwise edit
>>>>>include/asm/param.h appropriately.
>>>>>
>>>>
>>>>I forgot to write that my 2.6.12 kernel is already compiled with HZ 100
>>>>(it makes the system more responsive).
>>>>I've just tried 2.6.8.1 with HZ 1000 and there is no difference in HDD
>>>>performance comparing to 2.6.12.
>>>
>>>
>>>OK, interesting. You could try and boot with profile=2 and do
>>>
>>># readprofile -r
>>># dd if=/dev/hda of=/dev/null bs=128k
>>># readprofile > prof_output
>>>
>>>for each kernel and post it here, so we can see if anything sticks out.
>>>
>>
>>Here are the profiles (used dd with count=4096) from 2.4.26 and 2.6.12
>>(nothing from 2.6.8.1 because I don't have the .map file anymore).
>
>
> Looks interesting, 2.6 spends oodles of times copying to user space.
> Lets check if raw reads perform ok, please try and time this app in 2.4
> and 2.6 as well.
>
> # gcc -Wall -O2 -o oread oread.c
> # time ./oread /dev/hda
>
oread is faster than dd, but still not as fast as 2.4. In 2.6.12, HDD
led is blinking, in 2.4 it's solid on during the read.

2.6.12:
root@pentium:/home/rainbow# time ./oread /dev/hda

real 0m25.082s
user 0m0.000s
sys 0m0.680s

2.4.26:
root@pentium:/home/rainbow# time ./oread /dev/hda

real 0m23.513s
user 0m0.000s
sys 0m2.360s

--
Ondrej Zary

[-- Attachment #2: profile-oread2426.txt --]
[-- Type: text/plain, Size: 2354 bytes --]

2016 default_idle 25.2000
1 system_call 0.0156
2 handle_IRQ_event 0.0179
1 schedule 0.0012
1 __run_task_queue 0.0104
4 follow_page 0.0312
3 get_user_pages 0.0063
4 mark_dirty_kiobuf 0.0357
1 handle_mm_fault 0.0048
2 generic_file_direct_IO 0.0026
1 lru_cache_add 0.0089
2 init_buffer 0.0625
12 set_bh_page 0.1071
3 create_buffers 0.0134
30 generic_direct_IO 0.0457
17 brw_kiovec 0.0186
11 max_block 0.0764
9 blkdev_get_block 0.1406
2 blkdev_direct_IO 0.0417
1 write_profile 0.0208
2 generic_unplug_device 0.0312
93 __make_request 0.0524
25 generic_make_request 0.0781
20 submit_bh 0.0781
5 ide_inb 0.3125
12 ide_outb 0.7500
1 ide_outl 0.0625
1 ide_wait_stat 0.0030
4 ide_execute_command 0.0312
2 ide_do_request 0.0050
4 ide_get_queue 0.0625
2 ide_intr 0.0069
2 ide_dma_intr 0.0104
10 ide_build_sglist 0.0160
1 ide_build_dmatable 0.0024
1 __ide_dma_read 0.0042
1 __constant_c_and_count_memset 0.0069
1 __ide_do_rw_disk 0.0007
42 idedisk_end_request 0.2188
4 __rdtsc_delay 0.1250
0 *unknown*
2356 total 0.0013

[-- Attachment #3: profile-oread2612.txt --]
[-- Type: text/plain, Size: 2183 bytes --]

1 sched_clock 0.0057
3 cond_resched_lock 0.0312
2 write_profile 0.0312
1 __wake_up_bit 0.0208
2 __generic_file_aio_read 0.0038
1 generic_file_read 0.0052
1 mempool_alloc 0.0037
1 set_page_dirty 0.0125
3 set_page_dirty_lock 0.0625
4 __follow_page 0.0227
7 get_user_pages 0.0072
2 do_wp_page 0.0025
8 __bio_add_page 0.0227
5 bio_add_page 0.1562
1 bio_set_map_data 0.0208
1 update_atime 0.0057
1 dio_get_page 0.0156
1 dio_bio_submit 0.0069
2 dio_bio_complete 0.0096
5 submit_page_section 0.0164
1 dio_zero_block 0.0078
13 do_direct_IO 0.0150
2 direct_io_worker 0.0014
2 __copy_to_user_ll 0.0312
2428 acpi_processor_idle 4.0000
4 blk_rq_map_sg 0.0114
10 __make_request 0.0086
1 generic_make_request 0.0022
1 as_set_request 0.0089
4 ide_end_request 0.0278
6 ide_do_request 0.0072
1 ide_intr 0.0026
5 ide_outb 0.3125
1 ide_execute_command 0.0063
2 ide_build_sglist 0.0139
5 schedule 0.0033
1 io_schedule 0.0312
0 *unknown*
2539 total 0.0012