RE: [PATCH] OMAP: HSMMC: Do not enable buffer ready interrupt ifusing DMA

From: Gadiyar, Anand
Date: Wed May 06 2009 - 04:02:30 EST


On Tue, May 5, 2009, Jarkko Lavinen wrote:
> On Tue, Apr 21, 2009 at 09:39:22AM +0200, ext Gadiyar, Anand wrote:
> > From: Anand Gadiyar <gadiyar@xxxxxx>
> >
> > OMAP: HSMMC: Do not enable buffer ready interrupt if using DMA
> >
> > This considerably reduces the number of interrupts during a transfer
> > and ought to result in some power saving.
>
> I tried the patch with reading from the raw mmc block device to
> /dev/null with dd (with bs 32k and 1M). I cannot see any
> difference in interrupt count from /proc/interrupts or in read
> speed. At least the patch works. Cpu was 34340es3.
>
> I also trid without the patch just disabling the Buffer
> Read/write Ready bits from INT_EN_MASK which is then written to
> both MMCHS_IE and MMCHS_ISE. Still no change in read speed nor
> mmc irq count.
>
> Cheers
> Jarkko Lavinen

I discovered this while doing MMC writes. I did not check if there
was any difference during a read. I notice you have only tested with
MMC reads.

Here's what I get with and without the patch.

- Anand

Without patch
/ # mount -t vfat /dev/mmcblk0 /mnt/mmc
/ # cat /proc/interrupts | grep mmc
83: 90 INTC mmc0
384: 1 twl4030 mmc0
/ # dd if=/dev/zero of=/mnt/mmc/32kbs.txt bs=32k count=1000
1000+0 records in
1000+0 records out
/ # cat /proc/interrupts | grep mmc
83: 3760 INTC mmc0
384: 1 twl4030 mmc0
/ # dd if=/dev/zero of=/mnt/mmc/1Mbs.txt bs=1M count=32
32+0 records in
32+0 records out
/ # cat /proc/interrupts | grep mmc
83: 7570 INTC mmc0
384: 1 twl4030 mmc0
/ # ls -l /mnt/mmc
-rwxr-xr-x 1 root root 33554432 Dec 31 18:03 1Mbs.txt
-rwxr-xr-x 1 root root 32768000 Dec 31 18:03 32kbs.txt
/ # umount /mnt/mmc


With patch
/ # mount -t vfat /dev/mmcblk0 /mnt/mmc
/ # cat /proc/interrupts | grep mmc
83: 67 INTC mmc0
384: 0 twl4030 mmc0
/ # dd if=/dev/zero of=/mnt/mmc/32kbs.txt bs=32k count=1000
1000+0 records in
1000+0 records out
/ # cat /proc/interrupts | grep mmc
83: 3103 INTC mmc0
384: 0 twl4030 mmc0
/ # dd if=/dev/zero of=/mnt/mmc/1Mbs.txt bs=1M count=32
32+0 records in
32+0 records out
/ # cat /proc/interrupts | grep mmc
83: 6170 INTC mmc0
384: 0 twl4030 mmc0
/ # ls -l /mnt/mmc
-rwxr-xr-x 1 root root 33554432 Dec 31 18:01 1Mbs.txt
-rwxr-xr-x 1 root root 32768000 Dec 31 18:00 32kbs.txt
/ # umount /mnt/mmc--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/