The NetBSD Project

CVS log for src/sys/kern/subr_workqueue.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / kern

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: MAIN


Revision 1.48 / (download) - annotate - [select for diffs], Fri Mar 1 04:32:38 2024 UTC (6 weeks, 6 days ago) by mrg
Branch: MAIN
CVS Tags: HEAD
Changes since 1.47: +9 -2 lines
Diff to previous 1.47 (unified)

check that l_nopreempt (preemption count) doesn't change after callbacks

check that the idle loop, soft interrupt handlers, workqueue, and xcall
callbacks do not modify the preemption count, in most cases, knowing it
should be 0 currently.

this work was originally done by simonb.  cleaned up slightly and some
minor enhancement made by myself, and with discussion with riastradh@.

other callback call sites could check this as well (such as MD interrupt
handlers, or really anything that includes a callback registration.  x86
version to be commited separately.)

Revision 1.47 / (download) - annotate - [select for diffs], Wed Aug 9 08:24:18 2023 UTC (8 months, 1 week ago) by riastradh
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation
Changes since 1.46: +5 -5 lines
Diff to previous 1.46 (unified)

workqueue(9): Factor out wq->wq_flags & WQ_FPU in workqueue_worker.

No functional change intended.  Makes it clearer that s is
initialized when used.

Revision 1.46 / (download) - annotate - [select for diffs], Wed Aug 9 08:24:08 2023 UTC (8 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.45: +9 -8 lines
Diff to previous 1.45 (unified)

workqueue(9): Sort includes.

No functional change intended.

Revision 1.45 / (download) - annotate - [select for diffs], Wed Aug 9 08:23:45 2023 UTC (8 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.44: +4 -4 lines
Diff to previous 1.44 (unified)

workqueue(9): Avoid unnecessary mutex_exit/enter cycle each loop.

Revision 1.44 / (download) - annotate - [select for diffs], Wed Aug 9 08:23:35 2023 UTC (8 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.43: +4 -10 lines
Diff to previous 1.43 (unified)

workqueue(9): Stop violating queue(3) internals.

Revision 1.43 / (download) - annotate - [select for diffs], Wed Aug 9 08:23:25 2023 UTC (8 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.42: +16 -6 lines
Diff to previous 1.42 (unified)

workqueue(9): Sprinkle dtrace probes for workqueue_wait edge cases.

Let's make it easy to find out whether these are hit.

Revision 1.42 / (download) - annotate - [select for diffs], Wed Aug 9 08:23:13 2023 UTC (8 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.41: +54 -22 lines
Diff to previous 1.41 (unified)

workqueue(9): Avoid touching running work items in workqueue_wait.

As soon as the workqueue function has called, it is forbidden to
touch the struct work passed to it -- the function might free or
reuse the data structure it is embedded in.

So workqueue_wait is forbidden to search the queue for the batch of
running work items.  Instead, use a generation number which is odd
while the thread is processing a batch of work and even when not.

There's still a small optimization available with the struct work
pointer to wait for: if we find the work item in one of the per-CPU
_pending_ queues, then after we wait for a batch of work to complete
on that CPU, we don't need to wait for work on any other CPUs.

PR kern/57574

XXX pullup-10
XXX pullup-9
XXX pullup-8

Revision 1.41 / (download) - annotate - [select for diffs], Sat Oct 29 11:41:00 2022 UTC (17 months, 2 weeks ago) by riastradh
Branch: MAIN
CVS Tags: netbsd-10-base
Branch point for: netbsd-10
Changes since 1.40: +50 -2 lines
Diff to previous 1.40 (unified)

workqueue(9): Sprinkle dtrace probes.

Revision 1.40 / (download) - annotate - [select for diffs], Mon Aug 15 11:43:56 2022 UTC (20 months ago) by riastradh
Branch: MAIN
CVS Tags: bouyer-sunxi-drm-base, bouyer-sunxi-drm
Changes since 1.39: +6 -2 lines
Diff to previous 1.39 (unified)

workqueue(9): workqueue_wait and workqueue_destroy may sleep.

But might not, so assert sleepable up front.

Revision 1.39 / (download) - annotate - [select for diffs], Tue Sep 8 17:02:18 2020 UTC (3 years, 7 months ago) by riastradh
Branch: MAIN
CVS Tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-futex-base, thorpej-futex, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Changes since 1.38: +7 -15 lines
Diff to previous 1.38 (unified)

workqueue: Lift unnecessary restriction on workqueue_wait.

Allow multiple concurrent waits at a time, and allow enqueueing work
at the same time (as long as it's not the work we're waiting for).
This way multiple users can use a shared global workqueue and safely
wait for individual work items concurrently, while the workqueue is
still in use for other items (e.g., wg(4) peers).

This has the side effect of taking away a diagnostic measure, but I
think allowing the diagnostic's false positives instead of rejecting
them is worth it.  We could cheaply add it back with some false
negatives if it's important.

Revision 1.38 / (download) - annotate - [select for diffs], Sat Aug 1 02:14:43 2020 UTC (3 years, 8 months ago) by riastradh
Branch: MAIN
Changes since 1.37: +7 -2 lines
Diff to previous 1.37 (unified)

New workqueue flag WQ_FPU.

Arranges kthread_fpu_enter/exit around calls to the worker.  Saves
cost over explicit calls to kthread_fpu_enter/exit in the worker by
only doing it once, since there's often a high cost to flushing the
icache and zeroing the fpu registers.

As proposed on tech-kern:
https://mail-index.netbsd.org/tech-kern/2020/06/20/msg026524.html

Revision 1.37 / (download) - annotate - [select for diffs], Wed Jun 13 05:26:12 2018 UTC (5 years, 10 months ago) by ozaki-r
Branch: MAIN
CVS Tags: phil-wifi-base, phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, phil-wifi, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, isaki-audio2-base, isaki-audio2, is-mlppp-base, is-mlppp, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Branch point for: netbsd-9
Changes since 1.36: +5 -2 lines
Diff to previous 1.36 (unified)

Don't wait on workqueue_wait if called from worker itself

Otherwise workqueue_wait never return in such a case.  This treatment
is the same as callout_halt.

Revision 1.36 / (download) - annotate - [select for diffs], Tue Feb 6 03:48:39 2018 UTC (6 years, 2 months ago) by ozaki-r
Branch: MAIN
CVS Tags: pgoyette-compat-base, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315
Branch point for: pgoyette-compat
Changes since 1.35: +3 -2 lines
Diff to previous 1.35 (unified)

Check the length of a passed name to avoid slient truncation

Revision 1.35 / (download) - annotate - [select for diffs], Tue Jan 30 11:03:06 2018 UTC (6 years, 2 months ago) by ozaki-r
Branch: MAIN
Changes since 1.34: +18 -2 lines
Diff to previous 1.34 (unified)

Check if a queued work is tried to be enqueued again, which is not allowed

Revision 1.34 / (download) - annotate - [select for diffs], Thu Dec 28 07:00:52 2017 UTC (6 years, 3 months ago) by ozaki-r
Branch: MAIN
Changes since 1.33: +85 -18 lines
Diff to previous 1.33 (unified)

Add workqueue_wait that waits for a specific work to finish

The caller must ensure that no new work is enqueued before calling
workqueue_wait. Note that Note that if the workqueue is WQ_PERCPU, the caller
can enqueue a new work to another queue other than the waiting queue.

Discussed on tech-kern@

Revision 1.33 / (download) - annotate - [select for diffs], Sun Oct 7 22:16:21 2012 UTC (11 years, 6 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base9, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, tls-maxphys-base-20171202, tls-maxphys-base, tls-earlyentropy-base, tls-earlyentropy, rmind-smpnet-nbase, rmind-smpnet-base, rmind-smpnet, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, nick-nhusb-base-20170204, nick-nhusb-base-20161204, nick-nhusb-base-20161004, nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226, nick-nhusb-base-20150921, nick-nhusb-base-20150606, nick-nhusb-base-20150406, nick-nhusb-base, nick-nhusb, netbsd-8-base, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, khorben-n900, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan, agc-symver-base, agc-symver
Branch point for: netbsd-8
Changes since 1.32: +4 -2 lines
Diff to previous 1.32 (unified)

If the workqueue is using a prio less than PRI_KERNEL, make sure KTHREAD_TS
is used when creating the kthread.

Revision 1.32 / (download) - annotate - [select for diffs], Sun Oct 23 21:41:23 2011 UTC (12 years, 5 months ago) by jym
Branch: MAIN
CVS Tags: yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base10, jmcneill-usbmp-base, jmcneill-usbmp, jmcneill-audiomp3-base, jmcneill-audiomp3
Branch point for: yamt-pagecache, tls-maxphys
Changes since 1.31: +5 -4 lines
Diff to previous 1.31 (unified)

Turn a workqueue(9) name into an array in the struct workqueue, rather
than a const char *. This avoids keeping a reference to a string
owned by caller (string could be allocated on stack).

Revision 1.31 / (download) - annotate - [select for diffs], Wed Jul 27 14:35:34 2011 UTC (12 years, 8 months ago) by uebayasi
Branch: MAIN
Changes since 1.30: +2 -4 lines
Diff to previous 1.30 (unified)

These don't need uvm/uvm_extern.h.

Revision 1.30 / (download) - annotate - [select for diffs], Wed Nov 11 14:54:40 2009 UTC (14 years, 5 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2, uebayasi-xip-base1, uebayasi-xip-base, uebayasi-xip, rmind-uvmplock-nbase, rmind-uvmplock-base, rmind-uvmplock, matt-premerge-20091211, matt-mips64-premerge-20101231, jruoho-x86intr-base, jruoho-x86intr, cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Changes since 1.29: +2 -4 lines
Diff to previous 1.29 (unified)

workqueue_finiqueue: remove unused variable.

Revision 1.29 / (download) - annotate - [select for diffs], Wed Oct 21 21:12:06 2009 UTC (14 years, 6 months ago) by rmind
Branch: MAIN
CVS Tags: jym-xensuspend-nbase
Changes since 1.28: +2 -4 lines
Diff to previous 1.28 (unified)

Remove uarea swap-out functionality:

- Addresses the issue described in PR/38828.
- Some simplification in threading and sleepq subsystems.
- Eliminates pmap_collect() and, as a side note, allows pmap optimisations.
- Eliminates XS_CTL_DATA_ONSTACK in scsipi code.
- Avoids few scans on LWP list and thus potentially long holds of proc_lock.
- Cuts ~1.5k lines of code.  Reduces amd64 kernel size by ~4k.
- Removes __SWAP_BROKEN cases.

Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on
acorn26 (thanks to <bjh21>).

Discussed on <tech-kern>, reviewed by <ad>.

Revision 1.28 / (download) - annotate - [select for diffs], Sun Aug 16 10:59:25 2009 UTC (14 years, 8 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7
Changes since 1.27: +3 -3 lines
Diff to previous 1.27 (unified)

struct lwp -> lwp_t for consistency

Revision 1.27 / (download) - annotate - [select for diffs], Fri Apr 3 19:34:19 2009 UTC (15 years ago) by ad
Branch: MAIN
CVS Tags: yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base, jymxensuspend-base, jym-xensuspend-base
Changes since 1.26: +8 -2 lines
Diff to previous 1.26 (unified)

workqueue_finiqueue: our stack could be swapped out while enqueued to
a worker thread.

Revision 1.26 / (download) - annotate - [select for diffs], Mon Sep 15 10:43:29 2008 UTC (15 years, 7 months ago) by rmind
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, nick-hppapmap-base2, netbsd-5-base, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, mjf-devfs2-base, matt-mips64-base2, haad-nbase2, haad-dm-base2, haad-dm-base1, haad-dm-base, ad-audiomp2-base, ad-audiomp2
Branch point for: nick-hppapmap, netbsd-5, jym-xensuspend
Changes since 1.25: +4 -4 lines
Diff to previous 1.25 (unified)

Replace intptr_t in few places to uintptr_t.

Revision 1.25 / (download) - annotate - [select for diffs], Wed Jul 2 14:47:34 2008 UTC (15 years, 9 months ago) by matt
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-2, simonb-wapbl-nbase, simonb-wapbl-base
Branch point for: haad-dm
Changes since 1.24: +3 -3 lines
Diff to previous 1.24 (unified)

Switch from KASSERT to CTASSERT for those asserts testing sizes of types.

Revision 1.24 / (download) - annotate - [select for diffs], Thu Mar 27 18:30:15 2008 UTC (16 years ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-pf42-base, yamt-pf42, yamt-nfs-mp-base2, yamt-nfs-mp-base, wrstuden-revivesa-base-1, wrstuden-revivesa-base, hpcarm-cleanup-nbase
Branch point for: yamt-nfs-mp, wrstuden-revivesa, simonb-wapbl
Changes since 1.23: +6 -12 lines
Diff to previous 1.23 (unified)

Replace use of CACHE_LINE_SIZE in some obvious places.

Revision 1.23 / (download) - annotate - [select for diffs], Mon Mar 10 22:20:14 2008 UTC (16 years, 1 month ago) by martin
Branch: MAIN
CVS Tags: yamt-lazymbuf-base15, yamt-lazymbuf-base14, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, ad-socklock-base1
Changes since 1.22: +3 -3 lines
Diff to previous 1.22 (unified)

Use cpu index instead of the machine dependend, not very expressive
cpuid when naming user-visible kernel entities.

Revision 1.22 / (download) - annotate - [select for diffs], Wed Dec 5 07:06:54 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, vmlocking2-base3, vmlocking2-base2, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, matt-armv6-base, jmcneill-pm-base, hpcarm-cleanup-base, cube-autoconf-base, cube-autoconf, bouyer-xeni386-nbase, bouyer-xeni386-merge1, bouyer-xeni386-base, bouyer-xeni386
Branch point for: mjf-devfs2, keiichi-mipv6
Changes since 1.21: +3 -3 lines
Diff to previous 1.21 (unified)

Match the docs: MUTEX_DRIVER/SPIN are now only for porting code written
for Solaris.

Revision 1.21 / (download) - annotate - [select for diffs], Tue Aug 7 12:50:26 2007 UTC (16 years, 8 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, yamt-x86pmap-base3, yamt-x86pmap-base2, yamt-x86pmap-base, yamt-x86pmap, vmlocking2-base1, vmlocking-nbase, vmlocking-base, nick-csl-alignment-base5, matt-armv6-prevmlocking, jmcneill-base, bouyer-xenamd64-base2, bouyer-xenamd64-base, bouyer-xenamd64
Branch point for: vmlocking2, mjf-devfs, matt-armv6
Changes since 1.20: +4 -18 lines
Diff to previous 1.20 (unified)

don't bother to set thread's priority by ourselves,
as kthread_create does it for us now.  from Andrew Doran.

Revision 1.20 / (download) - annotate - [select for diffs], Tue Aug 7 10:42:22 2007 UTC (16 years, 8 months ago) by yamt
Branch: MAIN
Changes since 1.19: +39 -54 lines
Diff to previous 1.19 (unified)

- don't assume the order of cpus in a CPU_INFO_FOREACH loop.
- remove unused structure members.
- simplify.

Revision 1.19 / (download) - annotate - [select for diffs], Sun Aug 5 13:47:25 2007 UTC (16 years, 8 months ago) by ad
Branch: MAIN
CVS Tags: matt-mips64-base
Branch point for: matt-mips64
Changes since 1.18: +3 -3 lines
Diff to previous 1.18 (unified)

Current convention is to name/number objects after ci->ci_cpuid, so do
that when creating the kthreads. We may want to change this.

Revision 1.18 / (download) - annotate - [select for diffs], Sun Aug 5 01:19:17 2007 UTC (16 years, 8 months ago) by rmind
Branch: MAIN
Changes since 1.17: +83 -50 lines
Diff to previous 1.17 (unified)

Improve per-CPU support for the workqueue(9):
 - Make structures CPU-cache friendly, as suggested and explained
   by Andrew Doran.  CACHE_LINE_SIZE definition is invented.
 - Use current CPU if NULL is passed to the workqueue_enqueue().
 - Implemented MI CPU index, which could be used as an index of array.
   Removed linked-lists usage for work queues.

The roundup2() function avoids division, but works only with power of 2.

Reviewed by: <ad>, <yamt>, <tech-kern>

Revision 1.17 / (download) - annotate - [select for diffs], Fri Jul 20 12:43:26 2007 UTC (16 years, 9 months ago) by yamt
Branch: MAIN
CVS Tags: hpcarm-cleanup
Branch point for: jmcneill-pm
Changes since 1.16: +16 -8 lines
Diff to previous 1.16 (unified)

hide internals of struct work.

Revision 1.16 / (download) - annotate - [select for diffs], Wed Jul 18 18:17:03 2007 UTC (16 years, 9 months ago) by ad
Branch: MAIN
Changes since 1.15: +3 -3 lines
Diff to previous 1.15 (unified)

workqueue_destroy: fix a use-after-free.

Revision 1.15 / (download) - annotate - [select for diffs], Fri Jul 13 07:21:31 2007 UTC (16 years, 9 months ago) by rmind
Branch: MAIN
CVS Tags: nick-csl-alignment-base
Branch point for: nick-csl-alignment
Changes since 1.14: +18 -3 lines
Diff to previous 1.14 (unified)

Make MP parts friendly with various ports (especially UP):
 - #ifdef code parts, which uses CPU_INFO_FOREACH/CPU_INFO_ITERATOR
 - use ci_cpuid only in MP case
 - include machine/cpu.h

Revision 1.14 / (download) - annotate - [select for diffs], Thu Jul 12 20:39:56 2007 UTC (16 years, 9 months ago) by rmind
Branch: MAIN
Changes since 1.13: +65 -23 lines
Diff to previous 1.13 (unified)

Implementation of per-CPU work-queues support for workqueue(9) interface.
WQ_PERCPU flag for workqueue and additional argument for workqueue_enqueue()
to assign a CPU might be used. Notes:
 - For now, the list is used for workqueue_queue, which is non-optimal,
   and will be changed with array, where index would be CPU ID.
 - The data structures should be changed to be cache-friendly.

Reviewed by: <yamt>, <tech-kern>

Revision 1.13 / (download) - annotate - [select for diffs], Mon Jul 9 21:10:55 2007 UTC (16 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: mjf-ufs-trans-base
Changes since 1.12: +12 -12 lines
Diff to previous 1.12 (unified)

Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements

Revision 1.12 / (download) - annotate - [select for diffs], Tue Feb 27 15:07:29 2007 UTC (17 years, 1 month ago) by yamt
Branch: MAIN
CVS Tags: yamt-idlelwp-base8, thorpej-atomic-base, thorpej-atomic, reinoud-bufcleanup
Branch point for: vmlocking, mjf-ufs-trans
Changes since 1.11: +5 -5 lines
Diff to previous 1.11 (unified)

typedef pri_t and use it instead of int and u_char.

Revision 1.11 / (download) - annotate - [select for diffs], Sun Feb 11 15:37:20 2007 UTC (17 years, 2 months ago) by yamt
Branch: MAIN
CVS Tags: ad-audiomp-base, ad-audiomp
Branch point for: yamt-idlelwp
Changes since 1.10: +3 -4 lines
Diff to previous 1.10 (unified)

workqueue_exit: update a comment.

Revision 1.10 / (download) - annotate - [select for diffs], Sun Feb 11 15:36:35 2007 UTC (17 years, 2 months ago) by yamt
Branch: MAIN
Changes since 1.9: +5 -5 lines
Diff to previous 1.9 (unified)

use cv_signal rather than cv_broadcast where appropriate.

Revision 1.9 / (download) - annotate - [select for diffs], Fri Feb 9 21:55:31 2007 UTC (17 years, 2 months ago) by ad
Branch: MAIN
CVS Tags: post-newlock2-merge
Changes since 1.8: +34 -58 lines
Diff to previous 1.8 (unified)

Merge newlock2 to head.

Revision 1.8 / (download) - annotate - [select for diffs], Thu Dec 21 15:55:25 2006 UTC (17 years, 4 months ago) by yamt
Branch: MAIN
CVS Tags: newlock2-nbase, newlock2-base
Changes since 1.7: +4 -8 lines
Diff to previous 1.7 (unified)

merge yamt-splraiseipl branch.

	- finish implementing splraiseipl (and makeiplcookie).
	  http://mail-index.NetBSD.org/tech-kern/2006/07/01/0000.html
	- complete workqueue(9) and fix its ipl problem, which is reported
	  to cause audio skipping.
	- fix netbt (at least compilation problems) for some ports.
	- fix PR/33218.

Revision 1.7 / (download) - annotate - [select for diffs], Wed Nov 1 10:17:59 2006 UTC (17 years, 5 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3, wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, netbsd-4-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, netbsd-4, matt-nb4-arm-base, matt-nb4-arm
Changes since 1.6: +6 -6 lines
Diff to previous 1.6 (unified)

remove some __unused from function parameters.

Revision 1.6 / (download) - annotate - [select for diffs], Thu Oct 12 01:32:18 2006 UTC (17 years, 6 months ago) by christos
Branch: MAIN
CVS Tags: yamt-splraiseipl-base2
Changes since 1.5: +6 -6 lines
Diff to previous 1.5 (unified)

- sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386

Revision 1.5 / (download) - annotate - [select for diffs], Sat Sep 16 11:15:00 2006 UTC (17 years, 7 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-splraiseipl-base
Branch point for: yamt-splraiseipl
Changes since 1.4: +58 -0 lines
Diff to previous 1.4 (unified)

add workqueue_destroy().

Revision 1.4 / (download) - annotate - [select for diffs], Sat Sep 16 11:14:36 2006 UTC (17 years, 7 months ago) by yamt
Branch: MAIN
Changes since 1.3: +5 -7 lines
Diff to previous 1.3 (unified)

workqueue_create: use kmem_alloc rather than malloc.

Revision 1.3 / (download) - annotate - [select for diffs], Tue May 2 13:26:07 2006 UTC (17 years, 11 months ago) by rpaulo
Branch: MAIN
CVS Tags: yamt-pdpolicy-base9, yamt-pdpolicy-base8, yamt-pdpolicy-base7, yamt-pdpolicy-base6, yamt-pdpolicy-base5, simonb-timecounters-base, rpaulo-netinet-merge-pcb-base, gdamore-uart-base, gdamore-uart, elad-kernelauth-base, chap-midi-nbase, chap-midi-base, chap-midi, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: yamt-lazymbuf, newlock2
Changes since 1.2: +3 -3 lines
Diff to previous 1.2 (unified)

Use for in a forever loop as per KNF.

Revision 1.2 / (download) - annotate - [select for diffs], Sun Dec 11 12:24:30 2005 UTC (18 years, 4 months ago) by christos
Branch: MAIN
CVS Tags: yamt-uio_vmspace-base5, yamt-uio_vmspace, yamt-pdpolicy-base4, yamt-pdpolicy-base3, yamt-pdpolicy-base2, yamt-pdpolicy-base, peter-altq-base
Branch point for: yamt-pdpolicy, simonb-timecounters, rpaulo-netinet-merge-pcb, peter-altq, elad-kernelauth
Changes since 1.1: +2 -2 lines
Diff to previous 1.1 (unified)

merge ktrace-lwp.

Revision 1.1 / (download) - annotate - [select for diffs], Sat Oct 29 11:10:37 2005 UTC (18 years, 5 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-vop-base3, yamt-readahead-pervnode, yamt-readahead-perfile, yamt-readahead-base3, yamt-readahead-base2, yamt-readahead-base, yamt-readahead, ktrace-lwp-base
Branch point for: yamt-vop, ktrace-lwp

add a simple "do it in thread context" framework.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>