|
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
|
| 1.7 |
19-Dec-2021 |
riastradh |
linux: Fix rcu_barrier so it actually waits for everything.
|
| 1.6 |
19-Dec-2021 |
riastradh |
linux: Rate-limit RCU GC thread as a cheap experiment.
|
| 1.5 |
19-Dec-2021 |
riastradh |
linux: Use kmem directly for Linux kmalloc.
Take advantage of this to do LOCKDEBUG_MEM_CHECK at the point of kfree_rcu rather than in the RCU GC thread.
|
| 1.4 |
19-Dec-2021 |
riastradh |
Make intel_psr.c build netbsd-ify Stub out intel_lpe_audio.c (for now?). Hammer intel_opregion.c into shape. Hack up intel_lrc.c Adapt intel_reset.c Stub out intel_region_lmem.c Adapt intel_ring_submission.c Adapt intel_rps.c Adapt intel_sdvo.c Adapt intel_runtime_pm.c Adapt intel_sideband.c Adapt intel_sprite.c Adapt intel_tv.c Adapt intel_tc.c Adapt intel_sseu.c Adapt intel_timeline.c Adapt intel_uc_fw.c and fix typo Fix up intel_uncore.c intel_vga.c intel_wakeref.c intel_vdsc.c intel_wopcm.c intel_workarounds.c i915_globals.c Fix up intelfb.c Stub out intel_guc_log.c Stub out intel_dsi_dcs_backlight.c i915_perf.c intel_hdmi.c intel_hdcp.c
Author: Maya Rashish <maya@NetBSD.org> Committer: Taylor R Campbell <riastradh@NetBSD.org>
|
| 1.3 |
19-Dec-2021 |
riastradh |
linux: Add cond_synchronize_rcu.
|
| 1.2 |
19-Dec-2021 |
riastradh |
linux/rcupdate: Stub init_rcu_head, destroy_rcu_head.
|
| 1.1 |
19-Dec-2021 |
riastradh |
Move Linux RCU to common.
|
|
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
|
| 1.4 |
19-Dec-2021 |
riastradh |
Make intel_psr.c build netbsd-ify Stub out intel_lpe_audio.c (for now?). Hammer intel_opregion.c into shape. Hack up intel_lrc.c Adapt intel_reset.c Stub out intel_region_lmem.c Adapt intel_ring_submission.c Adapt intel_rps.c Adapt intel_sdvo.c Adapt intel_runtime_pm.c Adapt intel_sideband.c Adapt intel_sprite.c Adapt intel_tv.c Adapt intel_tc.c Adapt intel_sseu.c Adapt intel_timeline.c Adapt intel_uc_fw.c and fix typo Fix up intel_uncore.c intel_vga.c intel_wakeref.c intel_vdsc.c intel_wopcm.c intel_workarounds.c i915_globals.c Fix up intelfb.c Stub out intel_guc_log.c Stub out intel_dsi_dcs_backlight.c i915_perf.c intel_hdmi.c intel_hdcp.c
Author: Maya Rashish <maya@NetBSD.org> Committer: Taylor R Campbell <riastradh@NetBSD.org>
|
| 1.3 |
19-Dec-2021 |
riastradh |
'struct srcu' is actually called 'struct srcu_struct'
Author: Iain Hibbert <plunky@netbsd.org> Committer: Taylor R Campbell <riastradh@NetBSD.org>
|
| 1.2 |
19-Dec-2021 |
riastradh |
Omit __insn_barrier where implied or subsumed by volatile.
|
| 1.1 |
19-Dec-2021 |
riastradh |
Move Linux SRCU to common.
|
|
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base perseant-exfatfs-base-20240630 perseant-exfatfs-base thorpej-ifq-base thorpej-altq-separation-base
|
| 1.12 |
24-Feb-2023 |
riastradh |
drm: Eliminate __HAVE_ATOMIC_AS_MEMBAR conditionals.
Discussed on tech-kern: https://mail-index.netbsd.org/tech-kern/2023/02/23/msg028729.html
|
|
Revision tags: netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
|
| 1.11 |
09-Apr-2022 |
riastradh |
branches: 1.11.4; linux: Convert various API shims to use membar_release/acquire.
|
| 1.10 |
27-Dec-2021 |
riastradh |
linux: Fix copypasto in comment.
|
| 1.9 |
19-Dec-2021 |
riastradh |
drm: Sprinkle miscellaneous includes.
|
| 1.8 |
19-Dec-2021 |
riastradh |
linux: Use indirection for percpu simpleq.
Simpleq requires pointers into the head to work, but percpu(9) may move objects around, so we have to allocate the simpleq head separately with kmem(9).
|
| 1.7 |
19-Dec-2021 |
riastradh |
Make intel_psr.c build netbsd-ify Stub out intel_lpe_audio.c (for now?). Hammer intel_opregion.c into shape. Hack up intel_lrc.c Adapt intel_reset.c Stub out intel_region_lmem.c Adapt intel_ring_submission.c Adapt intel_rps.c Adapt intel_sdvo.c Adapt intel_runtime_pm.c Adapt intel_sideband.c Adapt intel_sprite.c Adapt intel_tv.c Adapt intel_tc.c Adapt intel_sseu.c Adapt intel_timeline.c Adapt intel_uc_fw.c and fix typo Fix up intel_uncore.c intel_vga.c intel_wakeref.c intel_vdsc.c intel_wopcm.c intel_workarounds.c i915_globals.c Fix up intelfb.c Stub out intel_guc_log.c Stub out intel_dsi_dcs_backlight.c i915_perf.c intel_hdmi.c intel_hdcp.c
Author: Maya Rashish <maya@NetBSD.org> Committer: Taylor R Campbell <riastradh@NetBSD.org>
|
| 1.6 |
19-Dec-2021 |
riastradh |
Fix membars in tasklet_disable/enable.
|
| 1.5 |
19-Dec-2021 |
riastradh |
Rework linux_tasklet.c a little.
Provide some more hacks for i915's grubby paws.
|
| 1.4 |
19-Dec-2021 |
riastradh |
Omit __insn_barrier where implied or subsumed by volatile.
|
| 1.3 |
19-Dec-2021 |
riastradh |
Add some i915drmkms additions to the tasklet API.
|
| 1.2 |
19-Dec-2021 |
riastradh |
Sprinkle in another assertion for good measure.
|
| 1.1 |
19-Dec-2021 |
riastradh |
Draft Linux tasklet implementation.
|
|
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
|
| 1.61 |
09-Apr-2022 |
riastradh |
linux: Convert various API shims to use membar_release/acquire.
|
| 1.60 |
31-Dec-2021 |
riastradh |
drm: Convert noisy flush_workqueue message to dtrace probe.
|
| 1.59 |
19-Dec-2021 |
riastradh |
linux: Downgrade warning about flushing from workqueue to debug.
|
| 1.58 |
19-Dec-2021 |
riastradh |
linux: Make flush_workqueue a noop if run from the workqueue.
I think this matches Linux semantics but this is very much not clear and not written down anywhere obvious and why is this such a semantically incoherent mess.
|
| 1.57 |
19-Dec-2021 |
riastradh |
linux: Fix flush_workqueue.
Simplify mechanism: we know there's only a single thread here that processes scheduled work in FIFO order (no multi-CPU workqueues -- would have to adapt if there were), so just schedule a work item that notifies of completion. The previous mechanism of counting 0, 1, or 2 generation numbers was broken by an earlier change to avoid abuse of tailqs arising from clever TAILQ_CONCAT.
|
| 1.56 |
19-Dec-2021 |
riastradh |
linux: Update workqueue flush to reflect TAILQ_CONCAT change.
|
| 1.55 |
19-Dec-2021 |
riastradh |
linux/workqueue: Draft queue_rcu_work.
|
| 1.54 |
19-Dec-2021 |
riastradh |
linux/workqueue: Use atomic_load/store.
|
| 1.53 |
19-Dec-2021 |
riastradh |
i915: another whack at it
|
| 1.52 |
19-Dec-2021 |
riastradh |
alloc_workqueue
|
| 1.51 |
19-Dec-2021 |
riastradh |
Constify work_pending, delayed_work_pending.
|
| 1.50 |
19-Dec-2021 |
riastradh |
drain_workqueue
|
| 1.49 |
19-Dec-2021 |
riastradh |
Add work_pending, delayed_work_pending.
|
| 1.48 |
19-Dec-2021 |
riastradh |
Implement return value of flush_work, flush_delayed_work.
|
| 1.47 |
19-Dec-2021 |
riastradh |
New system_unbound_wq.
|
| 1.46 |
19-Dec-2021 |
riastradh |
Fix copypasta in error branch.
XXX pullup to HEAD
|
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
|
| 1.45 |
01-Feb-2020 |
riastradh |
Fix abuse of TAILQ_CONCAT.
Other parts of this expect that the entries will be on wq->wq_queue or wq->wq_dqueue, so we can't just move a batch of entries onto a temporary queue. Instead, use a marker node to delimit when the batch ends.
XXX pullup
|
|
Revision tags: netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
|
| 1.44 |
19-Mar-2019 |
ryo |
branches: 1.44.4; 1.44.6; - dwc2 need calling linux_workqueue_init() to avoid panic. - use INIT_ONCE/FINI_ONCE to linux_workqueue_{init,fini}() for being called from dwc2.
TODO: dwc2 should be written as kernel module depenging on a linux module.
|
|
Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
|
| 1.43 |
27-Aug-2018 |
riastradh |
Workqueue lock must be at IPL_VM for use in interrupts, duh.
|
| 1.42 |
27-Aug-2018 |
riastradh |
Don't skimp on the last batch of work when worker is dying.
This is capitalism. We can't afford to waste time the worker could spend on labour even if we work 'em to death!
|
| 1.41 |
27-Aug-2018 |
riastradh |
Sprinkle dtrace probes all over the Linux workqueue stuff.
|
| 1.40 |
27-Aug-2018 |
riastradh |
Fix post-cancellation case of queue_delayed_work.
Request the callout queue immediately, as if it hadn't been cancelled at all, rather than reschedule for the next tick.
|
| 1.39 |
27-Aug-2018 |
riastradh |
Rework Linux workqueue synchronization yet again.
- Use a low bit in the pointer to the queue, rather than whether the pointer is null or not, to determine whether the work item is queued/scheduled.
- _Preserve_ the pointer to the queue after we release the work.
- Release the work _before_ executing the function, not after.
This simplifies some things: we no longer have to distinguish whether the work is queued or running in the functions where we are trying to modify it. The pointer has to be preserved even after the work is released so that we can flush the workqueue after the work has been released.
|
| 1.38 |
27-Aug-2018 |
riastradh |
Fix flush_delayed_work semantics: run it now if it was scheduled.
|
| 1.37 |
27-Aug-2018 |
riastradh |
Reorder fields to get better space savings than bit fields.
|
| 1.36 |
27-Aug-2018 |
riastradh |
Document workqueue semantics as I understand it.
|
| 1.35 |
27-Aug-2018 |
riastradh |
Avoid the prospect of callout calls piling up.
Don't ever callout_schedule the callout while an existing call may be in progress.
Echo some cases from cancel_delayed_work in flush_delayed_work.
|
| 1.34 |
27-Aug-2018 |
riastradh |
Don't let more than one thread claim credit for cancellation.
|
| 1.33 |
27-Aug-2018 |
riastradh |
Factor out waiting for current work.
|
| 1.32 |
27-Aug-2018 |
riastradh |
Merge two similar branches.
|
| 1.31 |
27-Aug-2018 |
riastradh |
Deduplicate callout destruction.
|
| 1.30 |
27-Aug-2018 |
riastradh |
Deduplicate callout initialization.
|
| 1.29 |
27-Aug-2018 |
riastradh |
Handle a bazillion additional cases I hadn't considered.
There's a lot of duplication here. To be deduplicated in a subsequent commit.
|
| 1.28 |
27-Aug-2018 |
riastradh |
Fix semantics of flush_work and flush_delayed_work.
- Change return type to void. => Upstream it is bool, but exactly one of hundreds of callers actually use it, and I don't think the semantics is clear.
- Make sure to wait for whichever of the current work _and_ the next batch queued is currently there in the workqueue.
- Don't retry a cancelled callout. Cancellation in the state DELAYED_WORK_CANCELLED is guaranteed.
|
| 1.27 |
27-Aug-2018 |
riastradh |
Reverse the sense of some branches for simplicity.
|
| 1.26 |
27-Aug-2018 |
riastradh |
Fix bugs in workqueue destruction.
|
| 1.25 |
27-Aug-2018 |
riastradh |
Fully initialize workqueue struct. Zalloc for paranoia.
|
| 1.24 |
27-Aug-2018 |
riastradh |
No need to retry in cancel_delayed_work_sync after all.
|
| 1.23 |
27-Aug-2018 |
riastradh |
Deduplicate post-cancellation logic.
|
| 1.22 |
27-Aug-2018 |
riastradh |
Don't touch a work after it is released.
|
| 1.21 |
27-Aug-2018 |
riastradh |
Non-waiting cancellation may need to release work too.
|
| 1.20 |
27-Aug-2018 |
riastradh |
After cancel and callout_halt, may need to reload workqueue.
|
| 1.19 |
27-Aug-2018 |
riastradh |
Don't wait forever to flush if the worker thread has no work.
|
| 1.18 |
27-Aug-2018 |
riastradh |
Sprinkle some assertions.
|
| 1.17 |
27-Aug-2018 |
riastradh |
Exercise greater care in acquiring and releasing work.
|
| 1.16 |
27-Aug-2018 |
riastradh |
Add missing break.
|
| 1.15 |
27-Aug-2018 |
riastradh |
Add KASSERT about state after callout fires.
|
| 1.14 |
27-Aug-2018 |
riastradh |
Work is not necessarily queued in flush_work either.
Regularize style: use initializer only if the wq is guaranteed, and confirmed by KASSERT, to be set
|
| 1.13 |
27-Aug-2018 |
riastradh |
Work is not necessarily queued in cancel_work.
|
| 1.12 |
27-Aug-2018 |
riastradh |
Draft rewrite of Linux workqueue reimplementation.
Just use an explicit thread; don't attempt to fudge it with workqueue(9). No doubt there are various mistakes in here, but they should be easier to get right than the mega-kludgerific nonsense that preceded this draft.
|
| 1.11 |
27-Aug-2018 |
riastradh |
Make flush_delayed_work actually run it. Oops.
XXX pullup-7 XXX pullup-8
|
| 1.10 |
27-Aug-2018 |
riastradh |
Disable broken workqueue_whoami garbage.
|
| 1.9 |
27-Aug-2018 |
riastradh |
Omit vestigial cruft.
|
| 1.8 |
27-Aug-2018 |
riastradh |
Try to avoid uninitialized garbage that gcc helpfully ignores.
|
| 1.7 |
27-Aug-2018 |
riastradh |
Try not to ask rbtree to overwrite random fields with garbage.
|
| 1.6 |
27-Aug-2018 |
riastradh |
Add system_power_efficient_wq.
|
| 1.5 |
27-Aug-2018 |
riastradh |
Implement flush_delayed_work.
|
| 1.4 |
27-Aug-2018 |
riastradh |
Also Linux wants work->func to work.
|
| 1.3 |
27-Aug-2018 |
riastradh |
Add mega-kludgerific current_work().
|
| 1.2 |
27-Aug-2018 |
riastradh |
Add system_long_wq.
|
|
Revision tags: netbsd-8-3-RELEASE netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
| 1.1 |
24-Feb-2016 |
skrll |
branches: 1.1.2; 1.1.6; 1.1.10; 1.1.22; 1.1.24; 1.1.26; Move linux_work.c and workqueue.h from sys/external/bsd/drm2 to sys/external/common so that they can be used by others.
LGTM from riastradh@
These should really live outside sys/external, but that can be decided later
|