dwc_otg: implement tasklet for returning URBs to usbcore hcd layer #255

Merged
merged 1 commit into from Mar 24, 2013

2 participants

@P33M

The dwc_otg driver interrupt handler for transfer completion will spend
a very long time with interrupts disabled when a URB is completed -
this is because usb_hcd_giveback_urb is called from within the handler
which for a USB device driver with complicated processing (e.g. webcam)
will take an exorbitant amount of time to complete. This results in
missed completion interrupts for other USB packets which lead to them
being dropped due to microframe overruns.

This patch splits returning the URB to the usb hcd layer into a
high-priority tasklet. This will have most benefit for isochronous IN
transfers but will also have incidental benefit where multiple periodic
devices are active at once.

P33M dwc_otg: implement tasklet for returning URBs to usbcore hcd layer
The dwc_otg driver interrupt handler for transfer completion will spend
a very long time with interrupts disabled when a URB is completed -
this is because usb_hcd_giveback_urb is called from within the handler
which for a USB device driver with complicated processing (e.g. webcam)
will take an exorbitant amount of time to complete. This results in
missed completion interrupts for other USB packets which lead to them
being dropped due to microframe overruns.

This patch splits returning the URB to the usb hcd layer into a
high-priority tasklet. This will have most benefit for isochronous IN
transfers but will also have incidental benefit where multiple periodic
devices are active at once.
c4564d4
@popcornmix

Been running with this over weekend, and no regressions spotted.
I'll accept it to make further testing easier.

@popcornmix popcornmix merged commit 79ec5aa into raspberrypi:rpi-3.6.y Mar 24, 2013
@hoerman hoerman pushed a commit to hoerman/linux.rpi that referenced this pull request Mar 27, 2013
@gnehzuil gnehzuil ext4: add punching hole support for non-extent-mapped files
This patch add supports for indirect file support punching hole.  It
is almost the same as ext4_ext_punch_hole.  First, we invalidate all
pages between this hole, and then we try to deallocate all blocks of
this hole.

A recursive function is used to handle deallocation of blocks.  In
this function, it iterates over the entries in inode's i_blocks or
indirect blocks, and try to free the block for each one of them.

After applying this patch, xfstest #255 will not pass w/o extent because
indirect-based file doesn't support unwritten extents.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
8bad6fc
@swarren swarren pushed a commit to swarren/linux-rpi that referenced this pull request Sep 10, 2013
Andrew Morton swap-make-swap-discard-async-checkpatch-fixes
WARNING: line over 80 characters
#81: FILE: include/linux/swap.h:243:
+	struct swap_cluster_info discard_cluster_head; /* list head of discard clusters */

WARNING: line over 80 characters
#82: FILE: include/linux/swap.h:244:
+	struct swap_cluster_info discard_cluster_tail; /* list tail of discard clusters */

ERROR: space prohibited before that '--' (ctx:WxO)
#255: FILE: mm/swapfile.c:449:
+				si->cluster_nr --;
 				               ^

total: 1 errors, 2 warnings, 310 lines checked

./patches/swap-make-swap-discard-async.patch has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: Shaohua Li <shli@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
163359d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment