Displaying 20 results from an estimated 438 matches for "schedule_work".
2019 Apr 04
4
[PATCH] pci/quirks: Add quirk to reset nvgpu at boot for the Lenovo ThinkPad P50
...ev, runtime_resume)
rpm_callback(callback, dev)
__rpm_callback
pci_pm_runtime_resume
drv->pm->runtime_resume
nouveau_pmops_runtime_resume
nouveau_do_resume
schedule_work(hpd_work) # <---
...
nouveau_display_hpd_work
pm_runtime_get_sync
drm_helper_hpd_irq_event
pm_runtime_mark_last_busy
pm_runtime_put_sync
I...
2016 Oct 25
2
noveau: emergency shutdown handling is overcomplex and broken
...rm/nouveau/nvkm/subdev/therm/temp.c
@@ -120,6 +120,11 @@ nvkm_therm_sensor_event(struct nvkm_therm *therm, enum nvkm_therm_thrs thrs,
struct work_struct *work;
work = kmalloc(sizeof(*work), GFP_ATOMIC);
+ /* FIXME:
+ 1) this is total overkill, orderly_poweroff() already
+ uses schedule_work internally
+ 2) it would be good to at least printk what is going on
+ */
if (work) {
INIT_WORK(work, nv_poweroff_work);
schedule_work(work);
GFP_ATOMIC is not reliable. Plus, see the fixme.
Best regards,
Pavel
--
(english) http://www.livejournal.com/~pav...
2016 Nov 21
2
[PATCH 1/2] drm/nouveau: Rename acpi_work to hpd_work
...id *data)
@@ -395,9 +395,9 @@ nouveau_display_acpi_ntfy(struct notifier_block *nb, unsigned long val,
/*
* This may be the only indication we receive of a
* connector hotplug on a runtime suspended GPU,
- * schedule acpi_work to check.
+ * schedule hpd_work to check.
*/
- schedule_work(&drm->acpi_work);
+ schedule_work(&drm->hpd_work);
/* acpi-video should not generate keypresses for this */
return NOTIFY_BAD;
@@ -587,8 +587,8 @@ nouveau_display_create(struct drm_device *dev)
}
nouveau_backlight_init(dev);
+ INIT_WORK(&drm->hpd_work, nouveau...
2007 May 15
4
Need help with singleton worker
...#39;d rather not schedule too many
instances of in parallel.
Couldn''t get pool_size to limit the amount of workers, and I figure
that''s hardly optimal anyway, so would like to have the work queued up
for a single named worker instead, running as soon as possible.
Using MiddleMan.schedule_worker() with :job_key does start off a
worker, but I can''t manage to add another task to the same worker and
have it queue up. It''s not just a matter of adding :worker_method =>
:do_work/:worker_method_args => whatever to schedule_worker()..? (see
example below)
Ideally using t...
2023 May 31
1
[PATCH V2] virtio-fs: Improved request latencies when Virtio queue is full
...s_drain_all_queues_locked(struct virtio_fs *fs)
@@ -346,6 +346,9 @@ static void virtio_fs_hiprio_done_work(struct work_struct *work)
dec_in_flight_req(fsvq);
}
} while (!virtqueue_enable_cb(vq) && likely(!virtqueue_is_broken(vq)));
+
+ if (!list_empty(&fsvq->queued_reqs))
+ schedule_work(&fsvq->dispatch_work);
spin_unlock(&fsvq->lock);
}
@@ -353,7 +356,7 @@ static void virtio_fs_request_dispatch_work(struct work_struct *work)
{
struct fuse_req *req;
struct virtio_fs_vq *fsvq = container_of(work, struct virtio_fs_vq,
- dispatch_work.work);
+ dispa...
2017 Jan 24
1
[PATCH 2/2] drm/nouveau: Queue hpd_work on (runtime) resume
...after nouveau has powered down the nvidia, i use echo ON >
...vgaswitcheroo/switch) to power up the nvidia again, but now with
nothing connected to its outputs.
I can prevent the hang if i either boot with nouveau.runpm=0, or connect
displays to the nvidia in case a), or if i remove the new
schedule_work() for hpd_work in the nouveau_pmops_runtime_resume() function.
Otherwise i get a hanging gpu-manager process on Ubuntu and this
repeating in my kernel log:
[ 246.899424] INFO: task kworker/7:1:127 blocked for more than 120 seconds.
[ 246.899476] Tainted: G I 4.9.0-rc8 #60
[...
2023 Jul 03
2
[PATCH V4] virtio-fs: Improved request latencies when Virtio queue is full
...s_drain_all_queues_locked(struct virtio_fs *fs)
@@ -346,6 +346,9 @@ static void virtio_fs_hiprio_done_work(struct work_struct *work)
dec_in_flight_req(fsvq);
}
} while (!virtqueue_enable_cb(vq) && likely(!virtqueue_is_broken(vq)));
+
+ if (!list_empty(&fsvq->queued_reqs))
+ schedule_work(&fsvq->dispatch_work);
spin_unlock(&fsvq->lock);
}
@@ -353,7 +356,7 @@ static void virtio_fs_request_dispatch_work(struct work_struct *work)
{
struct fuse_req *req;
struct virtio_fs_vq *fsvq = container_of(work, struct virtio_fs_vq,
- dispatch_work.work);
+ dispa...
2019 Apr 15
0
[PATCH] pci/quirks: Add quirk to reset nvgpu at boot for the Lenovo ThinkPad P50
...rpm_callback(callback, dev)
> __rpm_callback
> pci_pm_runtime_resume
> drv->pm->runtime_resume
> nouveau_pmops_runtime_resume
> nouveau_do_resume
> schedule_work(hpd_work) # <---
> ...
> nouveau_display_hpd_work
> pm_runtime_get_sync
> drm_helper_hpd_irq_event
> pm_runtime_mark_last_busy
>...
2019 Sep 25
2
[PATCH v2 03/27] drm/dp_mst: Destroy MSTBs asynchronously
...so we need to perform the
> + * actual destruction of the mstb in another worker
> + */
> + mutex_lock(&mgr->delayed_destroy_lock);
> + list_add(&mstb->destroy_next, &mgr->destroy_branch_device_list);
> + mutex_unlock(&mgr->delayed_destroy_lock);
> + schedule_work(&mgr->delayed_destroy_work);
> }
>
> /**
> @@ -1255,10 +1238,10 @@ static void drm_dp_destroy_port(struct kref *kref)
> * we might be holding the mode_config.mutex
> * from an EDID retrieval */
>
> - mutex_lock(&mgr->destroy_connector_lock);
&...
2019 Apr 24
2
[PATCH] pci/quirks: Add quirk to reset nvgpu at boot for the Lenovo ThinkPad P50
...)
> > __rpm_callback
> > pci_pm_runtime_resume
> > drv->pm->runtime_resume
> > nouveau_pmops_runtime_resume
> > nouveau_do_resume
> > schedule_work(hpd_work) # <---
> > ...
> > nouveau_display_hpd_work
> > pm_runtime_get_sync
> > drm_helper_hpd_irq_event
> > pm_runtime_mark_last_busy
&...
2019 Nov 22
2
[PATCH net-next v2] drivers: net: virtio_net: Implement a dev_watchdog handler
...og. This event is reached when transmission queue is having
problems to transmit packets. This could happen for any reason. To
enable it, driver should have .ndo_tx_timeout implemented.
This commit brings back virtnet_reset method to recover TX queues from a
error state. That function is called by schedule_work method and it puts
the reset function into work queue.
As the error cause is unknown at this moment, it would be better to
reset all queues.
Signed-off-by: Julio Faracco <jcfaracco at gmail.com>
Signed-off-by: Daiane Mendes <dnmendes76 at gmail.com>
Cc: Jason Wang <jasowang at redh...
2019 Nov 22
2
[PATCH net-next v2] drivers: net: virtio_net: Implement a dev_watchdog handler
...og. This event is reached when transmission queue is having
problems to transmit packets. This could happen for any reason. To
enable it, driver should have .ndo_tx_timeout implemented.
This commit brings back virtnet_reset method to recover TX queues from a
error state. That function is called by schedule_work method and it puts
the reset function into work queue.
As the error cause is unknown at this moment, it would be better to
reset all queues.
Signed-off-by: Julio Faracco <jcfaracco at gmail.com>
Signed-off-by: Daiane Mendes <dnmendes76 at gmail.com>
Cc: Jason Wang <jasowang at redh...
2019 Sep 27
1
[PATCH v2 03/27] drm/dp_mst: Destroy MSTBs asynchronously
...ction of the mstb in another worker
> > > + */
> > > + mutex_lock(&mgr->delayed_destroy_lock);
> > > + list_add(&mstb->destroy_next, &mgr->destroy_branch_device_list);
> > > + mutex_unlock(&mgr->delayed_destroy_lock);
> > > + schedule_work(&mgr->delayed_destroy_work);
> > > }
> > >
> > > /**
> > > @@ -1255,10 +1238,10 @@ static void drm_dp_destroy_port(struct kref *kref)
> > > * we might be holding the mode_config.mutex
> > > * from an EDID retrieval */
> &...
2016 Oct 25
0
noveau: emergency shutdown handling is overcomplex and broken
...thrs,
> struct work_struct *work;
>
> work = kmalloc(sizeof(*work), GFP_ATOMIC);
> + /* FIXME:
> + 1) this is total overkill, orderly_poweroff() already
> + uses schedule_work internally
> + 2) it would be good to at least printk what is going on
> + */
> if (work) {
> INIT_WORK(work, nv_poweroff_work);
> schedule_work(wor...
2016 Nov 21
0
[PATCH 2/2] drm/nouveau: Queue hpd_work on (runtime) resume
...vers/gpu/drm/nouveau/nouveau_drm.c
@@ -692,7 +692,12 @@ nouveau_pmops_resume(struct device *dev)
return ret;
pci_set_master(pdev);
- return nouveau_do_resume(drm_dev, false);
+ ret = nouveau_do_resume(drm_dev, false);
+
+ /* Monitors may have been connected / disconnected during suspend */
+ schedule_work(&nouveau_drm(drm_dev)->hpd_work);
+
+ return ret;
}
static int
@@ -766,6 +771,10 @@ nouveau_pmops_runtime_resume(struct device *dev)
nvif_mask(&device->object, 0x088488, (1 << 25), (1 << 25));
vga_switcheroo_set_dynamic_switch(pdev, VGA_SWITCHEROO_ON);
drm_dev-&g...
2017 Sep 23
0
drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c: broken emergency poweroff handling
...*therm, enum nvkm_therm_thrs thrs,
struct work_struct *work;
work = kmalloc(sizeof(*work), GFP_ATOMIC);
+ /* FIXME:
+ 1) this is total overkill, orderly_poweroff() already
+ uses schedule_work internally
+ 2) it would be good to at least printk what is going on
+ */
if (work) {
INIT_WORK(work, nv_poweroff_work);
schedule_work(work);
--
(english) http:...
2019 Sep 03
0
[PATCH v2 08/27] drm/dp_mst: Remove PDT teardown in drm_dp_destroy_port() and refactor
...r here, as
- * we might be holding the mode_config.mutex
- * from an EDID retrieval */
+ kfree(port->cached_edid);
- mutex_lock(&mgr->delayed_destroy_lock);
- list_add(&port->next, &mgr->destroy_port_list);
- mutex_unlock(&mgr->delayed_destroy_lock);
- schedule_work(&mgr->delayed_destroy_work);
- return;
- }
- /* no need to clean up vcpi
- * as if we have no connector we never setup a vcpi */
- drm_dp_port_teardown_pdt(port, port->pdt);
- port->pdt = DP_PEER_DEVICE_NONE;
- }
- drm_dp_mst_put_port_malloc(port);
+ /*
+ * we can't destro...
2008 Feb 22
1
[2.6 patch] make xen-blkfront.c:blkif_getgeo() static
...rg>
---
6f34bfdbb8c24e06d982ccaccd24c25dba5b1956 diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
index 9c6f3f9..ae7ee16 100644
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -136,7 +136,7 @@ static void blkif_restart_queue_callback(void *arg)
schedule_work(&info->work);
}
-int blkif_getgeo(struct block_device *bd, struct hd_geometry *hg)
+static int blkif_getgeo(struct block_device *bd, struct hd_geometry *hg)
{
/* We don''t have real geometry info, but let''s at least return
values consistent with the size of the de...
2011 Feb 03
0
[PATCH R3 4/7] xen/balloon: Migration from mod_timer() to schedule_delayed_work()
...return to Xen) we don''t really
want the kernel to try too hard since that can trigger the oom killer. */
@@ -172,11 +171,6 @@ static struct page *balloon_next_page(struct page *page)
return list_entry(next, struct page, lru);
}
-static void balloon_alarm(unsigned long unused)
-{
- schedule_work(&balloon_worker);
-}
-
static unsigned long current_target(void)
{
unsigned long target = balloon_stats.target_pages;
@@ -333,7 +327,7 @@ static void balloon_process(struct work_struct *work)
/* Schedule more work if there is some still to be done. */
if (current_target() != balloon_s...
2019 Oct 22
0
[PATCH v5 02/14] drm/dp_mst: Remove PDT teardown in drm_dp_destroy_port() and refactor
...r here, as
- * we might be holding the mode_config.mutex
- * from an EDID retrieval */
+ kfree(port->cached_edid);
- mutex_lock(&mgr->delayed_destroy_lock);
- list_add(&port->next, &mgr->destroy_port_list);
- mutex_unlock(&mgr->delayed_destroy_lock);
- schedule_work(&mgr->delayed_destroy_work);
- return;
- }
- /* no need to clean up vcpi
- * as if we have no connector we never setup a vcpi */
- drm_dp_port_teardown_pdt(port, port->pdt);
- port->pdt = DP_PEER_DEVICE_NONE;
- }
- drm_dp_mst_put_port_malloc(port);
+ /*
+ * we can't destro...