summaryrefslogtreecommitdiff
path: root/tools/perf/ui/gtk/setup.c
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2016-07-04 14:45:44 +0200
committerMarc Kleine-Budde <mkl@pengutronix.de>2017-02-06 15:13:30 +0100
commita3c11a7ac6cdd670324df39244ed1d2321bb0c9c (patch)
tree263c06d2db6dfe91759c0ae7f5288acc12ae08eb /tools/perf/ui/gtk/setup.c
parent1c10feee3e033b898a293d813ef4a4ebfb88dba2 (diff)
can: flexcan: make declaration of devtype_data const
This patch changes the declaration of the devtype data to const. Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'tools/perf/ui/gtk/setup.c')
0 files changed, 0 insertions, 0 deletions
is caused by btrfs_wq_run_delayed_node() queuing more and more works if the number of delayed items is above BTRFS_DELAYED_BACKGROUND. The worker func (btrfs_async_run_delayed_root) processes at least BTRFS_DELAYED_BATCH items (if they are present in the list). So, the machinery works as expected while the list is almost empty. As soon as it is getting bigger, worker func starts to process more than one item at a time, it takes longer, and the chances to have async_works queued more than needed is getting higher. The problem above is worsened by another flaw of delayed-inode implementation: if async_work was queued in a throttling branch (number of items >= BTRFS_DELAYED_WRITEBACK), corresponding worker func won't quit until the number of items < BTRFS_DELAYED_BACKGROUND / 2. So, it is possible that the func occupies CPU infinitely (up to 30sec in my experiments): while the func is trying to drain the list, the user activity may add more and more items to the list. The patch fixes both problems in straightforward way: refuse queuing too many works in btrfs_wq_run_delayed_node and bail out of worker func if at least BTRFS_DELAYED_WRITEBACK items are processed. Changed in v2: remove support of thresh == NO_THRESHOLD. Signed-off-by: Maxim Patlasov <mpatlasov@virtuozzo.com> Signed-off-by: Chris Mason <clm@fb.com> Cc: stable@vger.kernel.org # v3.15+
Diffstat (limited to 'net/bridge')