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

From: Gadiyar, Anand
Date: Fri May 22 2009 - 09:58:23 EST


On Wed, May 06, 2009, Gadiyar, Anand wrote:
> 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


Any comments on this? Is it safe to merge?

Thanks,
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/