Jacob Keller
b4fd8ffc11
fm10k: allow service task to reschedule itself
...
If some code path executes fm10k_service_event_schedule(), it is
guaranteed that we only queue the service task once, since we use
__FM10K_SERVICE_SCHED flag. Unfortunately this has a side effect that if
a service request occurs while we are currently running the watchdog, it
is possible that we will fail to notice the request and ignore it until
the next time the request occurs.
This can cause problems with pf/vf mailbox communication and other
service event tasks. To avoid this, introduce a FM10K_SERVICE_REQUEST
bit. When we successfully schedule (and set the _SCHED bit) the service
task, we will clear this bit. However, if we are unable to currently
schedule the service event, we just set the new SERVICE_REQUEST bit.
Finally, after the service event completes, we will re-schedule if the
request bit has been set.
This should ensure that we do not miss any service event schedules,
since we will re-schedule it once the currently running task finishes.
This means that for each request, we will always schedule the service
task to run at least once in full after the request came in.
This will avoid timing issues that can occur with the service event
scheduling. We do pay a cost in re-running many tasks, but all the
service event tasks use either flags to avoid duplicate work, or are
tolerant of being run multiple times.
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Krishneil Singh <krishneil.k.singh@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2017-04-05 22:47:30 -07:00
..
accessibility
acpi
acpi/processor: Check for duplicate processor ids at hotplug time
2017-03-11 14:41:20 +01:00
amba
android
sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h>
2017-03-02 08:42:29 +01:00
ata
ahci: qoriq: correct the sata ecc setting error
2017-03-09 11:55:23 -05:00
atm
ambassador: use setup_timer
2017-03-12 23:47:16 -07:00
auxdisplay
base
drivers core: remove assert_held_device_hotplug()
2017-03-16 16:56:19 -07:00
bcma
block
A fix for the recently discovered misdirected requests bug present in
2017-03-10 11:05:47 -08:00
bluetooth
soc: qcom: smd: Transition client drivers from smd to rpmsg
2017-03-28 17:58:07 -07:00
bus
cdrom
char
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2017-03-15 09:26:04 -07:00
clk
ARM: SoC: late DT updates for v4.11
2017-03-03 16:15:48 -08:00
clocksource
Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-03-17 13:13:35 -07:00
connector
cpufreq
Merge branches 'pm-cpufreq-fixes' and 'intel_pstate-fixes'
2017-03-18 00:45:09 +01:00
cpuidle
Merge branch 'WIP.sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-03-03 10:16:38 -08:00
crypto
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2017-03-15 09:26:04 -07:00
dax
device-dax: fix debug output typo
2017-03-10 19:56:56 -08:00
dca
devfreq
scripts/spelling.txt: add "followings" pattern and fix typo instances
2017-02-27 18:43:47 -08:00
dio
dma
sched/headers: Prepare to move the get_task_struct()/put_task_struct() and related APIs from <linux/sched.h> to <linux/sched/task.h>
2017-03-02 08:42:40 +01:00
dma-buf
sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h>
2017-03-02 08:42:32 +01:00
edac
eisa
extcon
scripts/spelling.txt: add "swithc" pattern and fix typo instances
2017-02-27 18:43:46 -08:00
firewire
Merge branch 'idr-4.11' of git://git.infradead.org/users/willy/linux-dax
2017-02-28 20:29:41 -08:00
firmware
Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-03-07 14:25:48 -08:00
fmc
fpga
fsi
gpio
gpio:mcp23s08 Fixed missing interrupts
2017-03-17 09:20:28 +01:00
gpu
Merge branch 'drm-fixes-4.11' of git://people.freedesktop.org/~agd5f/linux into drm-fixes
2017-03-16 11:28:44 +10:00
hid
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
2017-03-21 13:07:18 -07:00
hsi
sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h>
2017-03-02 08:42:32 +01:00
hv
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2017-03-15 11:59:10 -07:00
hwmon
scripts/spelling.txt: add "followings" pattern and fix typo instances
2017-02-27 18:43:47 -08:00
hwspinlock
hwtracing
mm, fs: reduce fault, page_mkwrite, and pfn_mkwrite to take only vmf
2017-02-24 17:46:54 -08:00
i2c
Revert "i2c: copy device properties when using i2c_register_board_info()"
2017-03-09 16:41:48 +01:00
ide
sched/headers: Prepare for new header dependencies before moving code to <linux/sched/task_stack.h>
2017-03-02 08:42:36 +01:00
idle
Power management turbostat utility updates for v4.11-rc1
2017-03-02 17:41:27 -08:00
iio
Staging/IIO driver fixes for 4.11-rc1
2017-03-04 11:26:18 -08:00
infiniband
drivers: add explicit interrupt.h includes
2017-03-30 11:05:34 -07:00
input
Input: rmi4 - f30: detect INPUT_PROP_BUTTONPAD from the button count
2017-03-01 10:01:56 -08:00
iommu
sched/headers: Prepare for new header dependencies before moving code to <linux/sched/mm.h>
2017-03-02 08:42:28 +01:00
ipack
irqchip
irqchip/irqdomain updates for 4.11-rc2
2017-03-09 12:06:41 +01:00
isdn
isdn: use setup_timer
2017-03-24 12:33:42 -07:00
leds
sched/headers: Prepare for new header dependencies before moving code to <linux/sched/loadavg.h>
2017-03-02 08:42:27 +01:00
lguest
sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h>
2017-03-02 08:42:32 +01:00
lightnvm
macintosh
powerpc/pmac: Fix crash in dma-mapping.h with NULL dma_ops
2017-03-10 14:17:23 +11:00
mailbox
sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h>
2017-03-02 08:42:32 +01:00
mcb
md
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md
2017-03-16 11:43:48 -07:00
media
Merge branch 'akpm' (patches from Andrew)
2017-03-10 08:34:42 -08:00
memory
memstick
message
mfd
misc
mm: convert generic code to 5-level paging
2017-03-09 11:48:47 -08:00
mmc
sched/headers: Prepare for new header dependencies before moving code to <uapi/linux/sched/types.h>
2017-03-02 08:42:27 +01:00
mtd
scripts/spelling.txt: add "disble(d)" pattern and fix typo instances
2017-03-09 17:01:09 -08:00
net
fm10k: allow service task to reschedule itself
2017-04-05 22:47:30 -07:00
nfc
scripts/spelling.txt: add "omited" pattern and fix typo instances
2017-02-27 18:43:47 -08:00
ntb
nubus
nvdimm
nfit, libnvdimm: fix interleave set cookie calculation
2017-03-01 00:49:42 -08:00
nvme
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
2017-03-03 10:53:35 -08:00
nvmem
of
oprofile
sched/headers: Prepare to move the get_task_struct()/put_task_struct() and related APIs from <linux/sched.h> to <linux/sched/task.h>
2017-03-02 08:42:40 +01:00
parisc
Merge branch 'parisc-4.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
2017-03-03 16:20:06 -08:00
parport
sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h>
2017-03-02 08:42:32 +01:00
pci
PCI/ASPM: Always set link->downstream to avoid NULL dereference on remove
2017-03-07 14:23:30 -06:00
pcmcia
perf
sched/headers: Prepare for new header dependencies before moving code to <linux/sched/clock.h>
2017-03-02 08:42:27 +01:00
phy
pinctrl
pinctrl: uniphier: change pin names of aio/xirq for LD11
2017-03-06 14:38:05 +01:00
platform
platform-drivers-x86 for v4.11-2
2017-03-13 13:23:43 -07:00
pnp
power
scripts/spelling.txt: add "intialization" pattern and fix typo instances
2017-02-27 18:43:47 -08:00
powercap
pps
ps3
sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h>
2017-03-02 08:42:29 +01:00
ptp
pwm
pwm: Changes for v4.11-rc1
2017-03-01 09:46:02 -08:00
rapidio
rapidio: use get_user_pages_unlocked()
2017-02-27 18:43:45 -08:00
ras
regulator
remoteproc
soc: qcom: smd: Remove standalone driver
2017-03-28 17:58:07 -07:00
reset
rpmsg
soc: qcom: smd: Remove standalone driver
2017-03-28 17:58:07 -07:00
rtc
sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h>
2017-03-02 08:42:32 +01:00
s390
Merge branch 'WIP.sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-03-03 10:16:38 -08:00
sbus
scsi
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2017-03-23 16:41:27 -07:00
sfi
sh
sn
soc
soc: qcom: smd-rpm: Add msm8996 compatibility
2017-03-28 17:58:08 -07:00
spi
sched/headers: Prepare for new header dependencies before moving code to <uapi/linux/sched/types.h>
2017-03-02 08:42:27 +01:00
spmi
ssb
staging
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2017-03-14 21:31:23 -07:00
target
tcmu: Convert cmd_time_out into backend device attribute
2017-03-18 16:32:30 -07:00
tc
thermal
sched/headers: Prepare for new header dependencies before moving code to <uapi/linux/sched/types.h>
2017-03-02 08:42:27 +01:00
thunderbolt
tty
net: ibm: emac: remove unused sysrq handler for 'c' key
2017-04-05 07:26:18 -07:00
uio
sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h>
2017-03-02 08:42:32 +01:00
usb
drivers: add explicit interrupt.h includes
2017-03-30 11:05:34 -07:00
uwb
vfio
sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h>
2017-03-02 08:42:29 +01:00
vhost
vhost-vsock: add pkt cancel capability
2017-03-21 14:41:46 -07:00
video
sched/headers: Remove the <linux/mm_types.h> dependency from <linux/sched.h>
2017-03-03 01:45:16 +01:00
virt
virtio
Merge branch 'WIP.sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-03-03 10:16:38 -08:00
vlynq
vme
w1
sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h>
2017-03-02 08:42:29 +01:00
watchdog
watchdog: retu: restore MFD dependency
2017-03-01 06:15:10 -08:00
xen
drivers, xen: convert grant_map.users from atomic_t to refcount_t
2017-03-13 12:45:18 -04:00
zorro
Kconfig
Makefile