ide-cs using 100% CPU
It isn't that the CPU is doing so much work, it's mostly waiting. However with this type of PIO access, the CPU must do all the reads/writes from the buffer and while doing this the CPU is blocked and cannot do anything else.
----- Original Message -----
From: "Hamie" <[email protected]>
Newsgroups: fa.linux.kernel
To: "Russell King" <[email protected]>
Cc: <[email protected]>
Sent: Friday, August 06, 2004 1:46 PM
Subject: Re: ide-cs using 100% CPU
Quoted 35 lines
Quoted 8 lines · Russell King
Quoted 4 lines · Hamie
Anyone know why this happens? Something busy waiting? (BUt that should show as system cpu right?) or something taking out really long locks?
Quoted 7 lines
It'll be because IDE is using PIO to access the CF card, which could have long access times (so reading a block of sectors could take some time _and_ use CPU.) Obviously, PIO requires the use of the CPU, so the CPU can't be handed off to some other task while this is occuring.
Well... I did consider that. And not to disbelieve you, since you know the kernel way better than I do, But decided I was being silly that a 1.6GHz Pentium-M processor should use 100% CPU moving a couple of MB/second across a CF interface...
Is 100% CPU not excessive? IIRC my PIII-750 used to use less CPU doing the same job as quick, or even slightly faster...
And should it not use system CPU rather than user CPU?
TIA
Hamish.-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Quoted 3 lines · Robert Hancock
It isn't that the CPU is doing so much work, it's mostly waiting. However
That was my point... While waiting, shouldn't the CPU be off doing something else? Like giving X some attention...
Quoted 5 lines
with this type of PIO access, the CPU must do all the reads/writes from the buffer and while doing this the CPU is blocked and cannot do anything else.
Or is the CF requirements such that it's spending it's time doing the actual reads & writes from the buffer, and it's the hardware inserting wait-states when it's being accessed?