On Fri, Feb 6, 2015 at 2:59 AM, Bhasker C V <bhas...@unixindia.com> wrote:

> could it be because with USB-SSD the kernel detects it as drive (smart
> works and also does hdparm) and uses DMA whereas in USB-SD kernel
> detects and attaches to usbstor but then has to do pio and cpu
> intensive low efficency transfer methods rather than DMA ?
> This means that kernel is doing a lot of job to write/read to usb and
> will not show up in top ... but still since CPU is being used
> constantly CPU gets heated up ....
> just a hypothesis ... someone can comment on this
>
> if that is the case how to force UDMA for usb memorystick kind of devices ?
> tried googling ... no answer
>
>
~$ sudo hdparm -I /dev/sda |grep -E "PIO|DMA"
        DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
        PIO: pio0 pio1 pio2 pio3 pio4

~$ sudo hdparm -I /dev/sdb |grep -E "PIO|DMA"
SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00
20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        DMA: not supported
        PIO: pio0

That hdparm switch is capital "i", not lowercase "L"...

sda is an ATA drive, and sdb is a usb stick in the above examples. You
cannot force that sdb use dma since it doesn't support dma. In case of a
drive that supports dma, then "hdparm -d" should help.

I'd expect that even though PIO is a cpu intensive IO, system should not
stay that heated when it is idle IO wise. I'd try the same using a usb
stick to observe the result and compare...

Regards,
Burhan

Reply via email to