RELENG_7: interrupt eating whole cpu core

Dominic Fandrey kamikaze at bsdforen.de
Fri Feb 8 06:28:01 UTC 2008


Carlos A. M. dos Santos wrote:
> On Feb 6, 2008 5:45 PM, Dominic Fandrey <kamikaze at bsdforen.de> wrote:
>> Chuck Swiger wrote:
>>> Hi, Dominic--
>>>
>>> On Feb 6, 2008, at 11:12 AM, Dominic Fandrey wrote:
>>>>> behaviour has changed. This is an HP 6510b GR695EA#ABD, if anyone
>>>>> thinks it might be helpful, I can supply you with a dmesg and the
>>>>> output of pciconf -lv.
>>>> The problem remains with fresh sources:
>>>>
>>>>  PID USERNAME   THR PRI NICE   SIZE    RES STATE  C   TIME    CPU COMMAND
>>>>   12 root         1 171 ki31     0K    16K RUN    0  22:04 97.85%
>>>> idle: cpu0
>>>>   37 root         1 -64    -     0K    16K CPU1   1   2:35 96.00%
>>>> irq14: ata0
>>>>   11 root         1 171 ki31     0K    16K RUN    1  19:32  6.40%
>>>> idle: cpu1
>>>>
>>>> The rip is done by k3b, so the drive is accessed through the cam
>>>> interface.
>>> What are the values being reported by "sysctl hw.ata"?  If you're going
>>> to be burning CD/DVDs, you really want to make sure hw.ata.atapi_dma is on.
>> I cannot believe it was so trivial. The sysctl looks all right.
>>
>> # sysctl hw.ata                                      0 /root
>> hw.ata.wc: 1
>> hw.ata.atapi_dma: 1
>> hw.ata.ata_dma: 1
>>
>> But further research revealed:
>> # atacontrol mode acd0                               0 /root
>> current mode = PIO4
>>
>> # atacontrol mode acd0 udma33                        0 /root
>>
>> changed the load dramatically:
>>   PID USERNAME    THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
>>    12 root          1 171 ki31     0K    16K RUN    0  52:54 100.00% idle: cpu0
>>    11 root          1 171 ki31     0K    16K CPU1   1  23:36 94.29% idle: cpu1
>> 1087 kamikaze      3  -8    0   133M 36168K physrd 1   1:09  3.17% k3b
>>    37 root          1 -64    -     0K    16K WAIT   1  30:10  0.00% irq14: ata0
>>
>>
>> Thank you very much! I used to think that UDMA33 was the default for
>> CD-/DVD-Rom drives. I suppose I should review the BIOS settings or change
>> something in the hints file.
> 
> Wow, now I'm *really* surprised. I used to think that putting
> 
>      hw.ata.ata_dma="1"
>      hw.ata.atapi_dma="1"
> 
> in /boot/loader.conf would be enough to enable DMA mode. In fact I'm
> pretty sure it used to be in previous versions of FreeBSD. I created a
> /etc/rc.local containing
> 
>      #!/bin/sh -
>      atacontrol mode acd0 udma33
> 

Did you check weather you are affected, before you applied your solution?
Only one machine is affected.

I put the following into my rc.conf:
# Set mode for CD/DVD drive.
/sbin/atacontrol mode acd0 2>&1 | /usr/bin/grep PIO > /dev/null 2>&1 \
	&& /sbin/atacontrol mode acd0 UDMA33


> Two questions, now:
> 
> 1. Is this related to using atapicam?

Not for me.

> 2. Should this be considered a bug?

Yes, but not in FreeBSD. It's a bug in the BIOS of my Notebook. This is a 
guess, not certainty.



More information about the freebsd-stable mailing list