The NetBSD Project

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

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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.60 / (download) - annotate - [select for diffs], Wed Jun 29 22:27:01 2022 UTC (7 months, 1 week ago) by riastradh
Branch: MAIN
CVS Tags: netbsd-10-base, netbsd-10, bouyer-sunxi-drm-base, bouyer-sunxi-drm, HEAD
Changes since 1.59: +3 -3 lines
Diff to previous 1.59 (colored)

sleepq(9): Pass syncobj through to sleepq_block.

Previously the usage pattern was:

sleepq_enter(sq, l, lock);              // locks l
...
sleepq_enqueue(sq, ..., sobj, ...);     // assumes l locked, sets l_syncobj
... (*)
sleepq_block(...);			// unlocks l

As long as l remains locked from sleepq_enter to sleepq_block,
l_syncobj is stable, and sleepq_block uses it via ktrcsw to determine
whether the sleep is on a mutex in order to avoid creating ktrace
context-switch records (which involves allocation which is forbidden
in softint context, while taking and even sleeping for a mutex is
allowed).

However, in turnstile_block, the logic at (*) also involves
turnstile_lendpri, which sometimes unlocks and relocks l.  At that
point, another thread can swoop in and sleepq_remove l, which sets
l_syncobj to sched_syncobj.  If that happens, ktrcsw does what is
forbidden -- tries to allocate a ktrace record for the context
switch.

As an optimization, sleepq_block or turnstile_block could stop early
if it detects that l_syncobj doesn't match -- we've already been
requested to wake up at this point so there's no need to mi_switch.
(And then it would be unnecessary to pass the syncobj through
sleepq_block, because l_syncobj would remain stable.)  But I'll leave
that to another change.

Reported-by: syzbot+8b9d7b066c32dbcdc63b@syzkaller.appspotmail.com

Revision 1.59 / (download) - annotate - [select for diffs], Sat Apr 9 23:52:05 2022 UTC (9 months, 4 weeks ago) by riastradh
Branch: MAIN
Changes since 1.58: +5 -6 lines
Diff to previous 1.58 (colored)

select(9): Use membar_acquire/release and atomic_store_release.

No store-before-load ordering here -- this was obviously always
intended to be load-before-load/store all along.

Revision 1.58 / (download) - annotate - [select for diffs], Sat Feb 12 15:51:29 2022 UTC (11 months, 3 weeks ago) by thorpej
Branch: MAIN
Changes since 1.57: +7 -5 lines
Diff to previous 1.57 (colored)

Add inline functions to manipulate the klists that link up knotes
via kn_selnext:

- klist_init()
- klist_fini()
- klist_insert()
- klist_remove()

These provide some API insulation from the implementation details of these
lists (but not completely; see vn_knote_attach() and vn_knote_detach()).
Currently just a wrapper around SLIST(9).

This will make it significantly easier to switch kn_selnext linkage
to a different kind of list.

Revision 1.57 / (download) - annotate - [select for diffs], Fri Dec 10 20:36:04 2021 UTC (13 months, 3 weeks ago) by andvar
Branch: MAIN
Changes since 1.56: +5 -5 lines
Diff to previous 1.56 (colored)

s/occured/occurred/ in comments, log messages and man pages.

Revision 1.56 / (download) - annotate - [select for diffs], Wed Sep 29 02:47:22 2021 UTC (16 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.55: +7 -3 lines
Diff to previous 1.55 (colored)

- Change selremove_knote() from returning void to bool, and return
  true if the last knote was removed and there are no more knotes
  on the selinfo.
- Use this new return value in filt_sordetach(), filt_sowdetach(),
  filt_fifordetach(), and filt_fifowdetach() to know when to clear
  SB_KOTE without having to know select/kqueue implementation details.

Revision 1.54.2.1 / (download) - annotate - [select for diffs], Mon Dec 14 14:38:14 2020 UTC (2 years, 1 month ago) by thorpej
Branch: thorpej-futex
Changes since 1.54: +24 -2 lines
Diff to previous 1.54 (colored) next main 1.55 (colored)

Sync w/ HEAD.

Revision 1.55 / (download) - annotate - [select for diffs], Fri Dec 11 01:25:29 2020 UTC (2 years, 1 month ago) by thorpej
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-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.54: +24 -2 lines
Diff to previous 1.54 (colored)

Add sel{record,remove}_knote(), so hide some of the details surrounding
knote / kevent registration in the selinfo structure.

Revision 1.41.4.3 / (download) - annotate - [select for diffs], Tue Apr 21 18:42:42 2020 UTC (2 years, 9 months ago) by martin
Branch: phil-wifi
Changes since 1.41.4.2: +1 -1 lines
Diff to previous 1.41.4.2 (colored) to branchpoint 1.41 (colored) next main 1.42 (colored)

Sync with HEAD

Revision 1.53.2.1 / (download) - annotate - [select for diffs], Mon Apr 20 11:29:10 2020 UTC (2 years, 9 months ago) by bouyer
Branch: bouyer-xenpvh
Changes since 1.53: +3 -3 lines
Diff to previous 1.53 (colored) next main 1.54 (colored)

Sync with HEAD

Revision 1.54 / (download) - annotate - [select for diffs], Sun Apr 19 20:35:29 2020 UTC (2 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: phil-wifi-20200421, bouyer-xenpvh-base2, bouyer-xenpvh-base1
Branch point for: thorpej-futex
Changes since 1.53: +3 -3 lines
Diff to previous 1.53 (colored)

Set LW_SINTR earlier so it doesn't pose a problem for doing interruptable
waits with turnstiles (not currently done).

Revision 1.41.4.2 / (download) - annotate - [select for diffs], Mon Apr 13 08:05:04 2020 UTC (2 years, 9 months ago) by martin
Branch: phil-wifi
Changes since 1.41.4.1: +77 -29 lines
Diff to previous 1.41.4.1 (colored) to branchpoint 1.41 (colored)

Mostly merge changes from HEAD upto 20200411

Revision 1.53 / (download) - annotate - [select for diffs], Thu Mar 26 19:46:42 2020 UTC (2 years, 10 months ago) by ad
Branch: MAIN
CVS Tags: phil-wifi-20200411, phil-wifi-20200406, bouyer-xenpvh-base
Branch point for: bouyer-xenpvh
Changes since 1.52: +10 -4 lines
Diff to previous 1.52 (colored)

Change sleepq_t from a TAILQ to a LIST and remove SOBJ_SLEEPQ_FIFO.  Only
select/poll used the FIFO method and that was for collisions which rarely
occur.  Shrinks sleep_t and condvar_t.

Revision 1.40.2.1 / (download) - annotate - [select for diffs], Sun Mar 8 09:47:28 2020 UTC (2 years, 11 months ago) by martin
Branch: netbsd-8
CVS Tags: netbsd-8-2-RELEASE
Changes since 1.40: +19 -6 lines
Diff to previous 1.40 (colored) next main 1.41 (colored)

Pull up following revision(s) (requested by mlelstv in ticket #1515):

	sys/kern/sys_select.c: revision 1.42-1.45

PR/54158: Anthony Mallet: poll(2) does not allow polling all possible fds
(hardcoded limit to 1000 + #<open-fds>). Changed to limit by the max of
the resource limit of open descriptors and the above.

Remove the slop code. Suggested by mrg@

Use the max limit (aka maxfiles or the moral equivalent of OPEN_MAX) which
makes poll(2) align with the Posix documentation (which allows EINVAL if
nfds > OPEN_MAX). From: Anthony Mallet

Add slop of 1000 and explain why.

Revision 1.50.2.1 / (download) - annotate - [select for diffs], Sat Feb 29 20:21:03 2020 UTC (2 years, 11 months ago) by ad
Branch: ad-namecache
Changes since 1.50: +4 -4 lines
Diff to previous 1.50 (colored) next main 1.51 (colored)

Sync with head.

Revision 1.52 / (download) - annotate - [select for diffs], Sat Feb 15 17:09:24 2020 UTC (2 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: is-mlppp-base, is-mlppp, ad-namecache-base3
Changes since 1.51: +3 -3 lines
Diff to previous 1.51 (colored)

- List all of the syncobjs in syncobj.h.
- Update a comment.

Revision 1.51 / (download) - annotate - [select for diffs], Sat Feb 1 02:23:04 2020 UTC (3 years ago) by riastradh
Branch: MAIN
Changes since 1.50: +3 -3 lines
Diff to previous 1.50 (colored)

Load struct filedesc::fd_dt with atomic_load_consume.

Exceptions: when fd_refcnt <= 1, or when holding fd_lock.

While here:

- Restore KASSERT(mutex_owned(&fdp->fd_lock)) in fd_unused.
  => This is used only in fd_close and fd_abort, where it holds.
- Move bounds check assertion in fd_putfile to where it matters.
- Store fd_dt with atomic_store_release.
- Move load of fd_dt under lock in knote_fdclose.
- Omit membar_consumer in fdesc_readdir.
  => atomic_load_consume serves the same purpose now.
  => Was needed only on alpha anyway.

Revision 1.50 / (download) - annotate - [select for diffs], Fri Nov 22 20:04:03 2019 UTC (3 years, 2 months ago) by ad
Branch: MAIN
CVS Tags: ad-namecache-base2, ad-namecache-base1, ad-namecache-base
Branch point for: ad-namecache
Changes since 1.49: +4 -4 lines
Diff to previous 1.49 (colored)

Minor correction to previous.

Revision 1.49 / (download) - annotate - [select for diffs], Thu Nov 21 21:42:30 2019 UTC (3 years, 2 months ago) by ad
Branch: MAIN
Changes since 1.48: +59 -21 lines
Diff to previous 1.48 (colored)

Minor improvements to select/poll:

- Increase the maximum number of clusters from 32 to 64 for large systems.
  kcpuset_t could potentially be used here but that's an excursion I don't
  want to go on right now.  uint32_t -> uint64_t is very simple.

- In the case of a non-blocking select/poll, or where we won't block
  because there are events ready to report, stop registering interest in
  the back-end objects early.

- Change the wmesg for poll back to "poll".

Revision 1.48 / (download) - annotate - [select for diffs], Fri Sep 20 15:00:47 2019 UTC (3 years, 4 months ago) by kamil
Branch: MAIN
CVS Tags: phil-wifi-20191119
Changes since 1.47: +6 -2 lines
Diff to previous 1.47 (colored)

Validate usec ranges in sys___select50()

Later in the code selcommon() checks for proper timespec, check only
correct usec of timeval before type conversions.

Revision 1.47 / (download) - annotate - [select for diffs], Tue Aug 20 01:56:21 2019 UTC (3 years, 5 months ago) by msaitoh
Branch: MAIN
Changes since 1.46: +5 -5 lines
Diff to previous 1.46 (colored)

 Use unsigned to avoid undefined behavior. Found by kUBSan.

Revision 1.46 / (download) - annotate - [select for diffs], Fri Jul 26 05:37:59 2019 UTC (3 years, 6 months ago) by msaitoh
Branch: MAIN
CVS Tags: 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, netbsd-9
Changes since 1.45: +3 -3 lines
Diff to previous 1.45 (colored)

 Set sc_mask correctly in selsysinit() to avoid undefined behavior.
Found by KUBSan.

Revision 1.41.4.1 / (download) - annotate - [select for diffs], Mon Jun 10 22:09:03 2019 UTC (3 years, 7 months ago) by christos
Branch: phil-wifi
Changes since 1.41: +19 -6 lines
Diff to previous 1.41 (colored)

Sync with HEAD

Revision 1.45 / (download) - annotate - [select for diffs], Wed May 8 00:55:18 2019 UTC (3 years, 9 months ago) by christos
Branch: MAIN
CVS Tags: phil-wifi-20190609
Changes since 1.44: +8 -4 lines
Diff to previous 1.44 (colored)

Add slop of 1000 and explain why.

Revision 1.44 / (download) - annotate - [select for diffs], Tue May 7 20:10:21 2019 UTC (3 years, 9 months ago) by christos
Branch: MAIN
Changes since 1.43: +7 -3 lines
Diff to previous 1.43 (colored)

Use the max limit (aka maxfiles or the moral equivalent of OPEN_MAX) which
makes poll(2) align with the Posix documentation (which allows EINVAL if
nfds > OPEN_MAX). From: Anthony Mallet

Revision 1.43 / (download) - annotate - [select for diffs], Sun May 5 20:45:08 2019 UTC (3 years, 9 months ago) by christos
Branch: MAIN
Changes since 1.42: +11 -7 lines
Diff to previous 1.42 (colored)

Remove the slop code. Suggested by mrg@

Revision 1.42 / (download) - annotate - [select for diffs], Sat May 4 15:46:58 2019 UTC (3 years, 9 months ago) by christos
Branch: MAIN
Changes since 1.41: +4 -3 lines
Diff to previous 1.41 (colored)

PR/54158: Anthony Mallet: poll(2) does not allow polling all possible fds
(hardcoded limit to 1000 + #<open-fds>). Changed to limit by the max of
the resource limit of open descriptors and the above.

Revision 1.41 / (download) - annotate - [select for diffs], Tue Jan 30 07:52:23 2018 UTC (5 years ago) by ozaki-r
Branch: MAIN
CVS Tags: phil-wifi-base, pgoyette-compat-merge-20190127, pgoyette-compat-base, 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, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, isaki-audio2-base, isaki-audio2
Branch point for: phil-wifi
Changes since 1.40: +7 -7 lines
Diff to previous 1.40 (colored)

Apply C99-style struct initialization to syncobj_t

Revision 1.36.12.3 / (download) - annotate - [select for diffs], Sun Dec 3 11:38:45 2017 UTC (5 years, 2 months ago) by jdolecek
Branch: tls-maxphys
Changes since 1.36.12.2: +4 -8 lines
Diff to previous 1.36.12.2 (colored) to branchpoint 1.36 (colored) next main 1.37 (colored)

update from HEAD

Revision 1.39.4.1 / (download) - annotate - [select for diffs], Mon Aug 28 17:53:07 2017 UTC (5 years, 5 months ago) by skrll
Branch: nick-nhusb
Changes since 1.39: +6 -10 lines
Diff to previous 1.39 (colored) next main 1.40 (colored)

Sync with HEAD

Revision 1.40 / (download) - annotate - [select for diffs], Thu Jun 1 02:45:13 2017 UTC (5 years, 8 months ago) by chs
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, netbsd-8-base, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, matt-nb8-mediatek-base, matt-nb8-mediatek
Branch point for: netbsd-8
Changes since 1.39: +6 -10 lines
Diff to previous 1.39 (colored)

remove checks for failure after memory allocation calls that cannot fail:

  kmem_alloc() with KM_SLEEP
  kmem_zalloc() with KM_SLEEP
  percpu_alloc()
  pserialize_create()
  psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.

Revision 1.10.10.1 / (download) - annotate - [select for diffs], Fri Apr 24 05:46:33 2015 UTC (7 years, 9 months ago) by msaitoh
Branch: netbsd-5-1
Changes since 1.10: +13 -5 lines
Diff to previous 1.10 (colored) next main 1.11 (colored)

Pull up following revision(s) (requested by prlw1 in ticket #1957):

sys/kern/sys_select.c				patch

	Limit nfds arg to poll() to a large enough value that user programs
	cannot allocate indefinite sized blocks of kvm. If the limit is
	exceeded, then return EINVAL instead of silently truncating the list.
	Addresses PR/17507.
	[prlw1, ticket #1957]

Revision 1.10.14.1 / (download) - annotate - [select for diffs], Fri Apr 24 05:46:09 2015 UTC (7 years, 9 months ago) by msaitoh
Branch: netbsd-5-2
Changes since 1.10: +13 -5 lines
Diff to previous 1.10 (colored) next main 1.11 (colored)

Pull up following revision(s) (requested by prlw1 in ticket #1957):

sys/kern/sys_select.c				patch

	Limit nfds arg to poll() to a large enough value that user programs
	cannot allocate indefinite sized blocks of kvm. If the limit is
	exceeded, then return EINVAL instead of silently truncating the list.
	Addresses PR/17507.
	[prlw1, ticket #1957]

Revision 1.10.4.1 / (download) - annotate - [select for diffs], Fri Apr 24 05:45:48 2015 UTC (7 years, 9 months ago) by msaitoh
Branch: netbsd-5
Changes since 1.10: +13 -5 lines
Diff to previous 1.10 (colored) next main 1.11 (colored)

Pull up following revision(s) (requested by prlw1 in ticket #1957):

sys/kern/sys_select.c				patch

	Limit nfds arg to poll() to a large enough value that user programs
	cannot allocate indefinite sized blocks of kvm. If the limit is
	exceeded, then return EINVAL instead of silently truncating the list.
	Addresses PR/17507.

Revision 1.36.12.2 / (download) - annotate - [select for diffs], Wed Aug 20 00:04:29 2014 UTC (8 years, 5 months ago) by tls
Branch: tls-maxphys
Changes since 1.36.12.1: +4 -68 lines
Diff to previous 1.36.12.1 (colored) to branchpoint 1.36 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.38.2.1 / (download) - annotate - [select for diffs], Sun Aug 10 06:55:58 2014 UTC (8 years, 5 months ago) by tls
Branch: tls-earlyentropy
Changes since 1.38: +2 -60 lines
Diff to previous 1.38 (colored) next main 1.39 (colored)

Rebase.

Revision 1.36.2.1 / (download) - annotate - [select for diffs], Thu May 22 11:41:03 2014 UTC (8 years, 8 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.36: +5 -69 lines
Diff to previous 1.36 (colored) next main 1.37 (colored)

sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.37.2.1 / (download) - annotate - [select for diffs], Sun May 18 17:46:07 2014 UTC (8 years, 8 months ago) by rmind
Branch: rmind-smpnet
Changes since 1.37: +4 -68 lines
Diff to previous 1.37 (colored) next main 1.38 (colored)

sync with head

Revision 1.39 / (download) - annotate - [select for diffs], Fri Apr 25 15:52:45 2014 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-pagecache-base9, tls-maxphys-base, tls-earlyentropy-base, rmind-smpnet-nbase, rmind-smpnet-base, 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, 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, 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, localcount-20160914, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: nick-nhusb
Changes since 1.38: +2 -60 lines
Diff to previous 1.38 (colored)

Remove pollsock().  Since it took only a single socket, it was essentially
a complicated way to call soreceive() with a sb_timeo.  The only user
(netsmb) already did that anyway, so just had to delete the call to
pollsock().

Revision 1.38 / (download) - annotate - [select for diffs], Tue Feb 25 18:30:11 2014 UTC (8 years, 11 months ago) by pooka
Branch: MAIN
CVS Tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3
Branch point for: tls-earlyentropy
Changes since 1.37: +4 -10 lines
Diff to previous 1.37 (colored)

Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before
the sysctl link sets are processed, and remove redundancy.

Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate
lines of code.

Revision 1.36.12.1 / (download) - annotate - [select for diffs], Mon Feb 25 00:29:54 2013 UTC (9 years, 11 months ago) by tls
Branch: tls-maxphys
Changes since 1.36: +3 -3 lines
Diff to previous 1.36 (colored)

resync with head

Revision 1.37 / (download) - annotate - [select for diffs], Sat Jan 26 19:38:17 2013 UTC (10 years ago) by riastradh
Branch: MAIN
CVS Tags: riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, khorben-n900, agc-symver-base, agc-symver
Branch point for: rmind-smpnet
Changes since 1.36: +3 -3 lines
Diff to previous 1.36 (colored)

Assert equality, not assignment, in selrecord.

Code inspection suggests that this fix is not likely to reveal any
latent problems.

Revision 1.36 / (download) - annotate - [select for diffs], Mon Aug 29 00:39:16 2011 UTC (11 years, 5 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-pagecache-tag8, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, 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.35: +36 -16 lines
Diff to previous 1.35 (colored)

Add kern.direct_select sysctl.  Default to 0 for now.

Revision 1.35 / (download) - annotate - [select for diffs], Tue Aug 9 06:36:51 2011 UTC (11 years, 6 months ago) by hannken
Branch: MAIN
Changes since 1.34: +12 -5 lines
Diff to previous 1.34 (colored)

No need to lock the selcluster in selscan() if either
NO_DIRECT_SELECT is defined or all polls return an event.

Revision 1.34 / (download) - annotate - [select for diffs], Sat Aug 6 11:04:25 2011 UTC (11 years, 6 months ago) by hannken
Branch: MAIN
Changes since 1.33: +37 -17 lines
Diff to previous 1.33 (colored)

Fix the races of direct select()/poll():

- When sel_do_scan() restarts do a full initialization with selclear() so
  we start from an empty set without registered events.  Defer the
  evaluation of l_selret after selclear() and add the count of direct events
  to the count of events.

- For selscan()/pollscan() zero the output descriptors before we poll and
  for selscan() take the sc_lock before we change them.

- Change sel_setevents() to not count events already set.

Reviewed by: YAMAMOTO Takashi <yamt@netbsd.org>

Should fix PR #44763 (select/poll direct-set optimization seems racy)
       and PR #45187 (select(2) sometimes doesn't wakeup)

Revision 1.29.2.1 / (download) - annotate - [select for diffs], Mon Jun 6 09:09:36 2011 UTC (11 years, 8 months ago) by jruoho
Branch: jruoho-x86intr
Changes since 1.29: +34 -29 lines
Diff to previous 1.29 (colored) next main 1.30 (colored)

Sync with HEAD.

Revision 1.21.4.4 / (download) - annotate - [select for diffs], Tue May 31 03:05:03 2011 UTC (11 years, 8 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.21.4.3: +4 -17 lines
Diff to previous 1.21.4.3 (colored) to branchpoint 1.21 (colored) next main 1.22 (colored)

sync with head

Revision 1.33 / (download) - annotate - [select for diffs], Sat May 28 15:33:41 2011 UTC (11 years, 8 months ago) by christos
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase, rmind-uvmplock-base, cherry-xenmp-base, cherry-xenmp
Changes since 1.32: +5 -2 lines
Diff to previous 1.32 (colored)

If a signal did not fire, restore the original signal mask for pselect/pollts
using a signal mask. Tested by tron.

Revision 1.32 / (download) - annotate - [select for diffs], Wed May 18 14:48:04 2011 UTC (11 years, 8 months ago) by christos
Branch: MAIN
Changes since 1.31: +3 -5 lines
Diff to previous 1.31 (colored)

No need to mask twice. The setup function does it.

Revision 1.31 / (download) - annotate - [select for diffs], Wed May 18 03:51:41 2011 UTC (11 years, 8 months ago) by christos
Branch: MAIN
Changes since 1.30: +3 -17 lines
Diff to previous 1.30 (colored)

PR/43625: Mark Davies: Fix pselect(2) to honor the temporary mask. pselect(2)
(and pollts(2)) are similar to sigsuspend(2) in that they temporarily change
the process signal mask and wait for signal delivery. Factor out and share the
code that does this.

Revision 1.21.4.3 / (download) - annotate - [select for diffs], Thu Apr 21 01:42:09 2011 UTC (11 years, 9 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.21.4.2: +28 -10 lines
Diff to previous 1.21.4.2 (colored) to branchpoint 1.21 (colored)

sync with head

Revision 1.30 / (download) - annotate - [select for diffs], Sun Mar 6 04:41:58 2011 UTC (11 years, 11 months ago) by rmind
Branch: MAIN
Changes since 1.29: +30 -12 lines
Diff to previous 1.29 (colored)

In a case of direct select, set only masked events, do not wakeup LWP
if no polled/selected events were set; also, count the correct return
value for the select.

Revision 1.21.4.2 / (download) - annotate - [select for diffs], Sat Mar 5 20:55:23 2011 UTC (11 years, 11 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.21.4.1: +140 -41 lines
Diff to previous 1.21.4.1 (colored) to branchpoint 1.21 (colored)

sync with head

Revision 1.29 / (download) - annotate - [select for diffs], Sat Dec 18 01:36:19 2010 UTC (12 years, 1 month ago) by rmind
Branch: MAIN
CVS Tags: matt-mips64-premerge-20101231, jruoho-x86intr-base, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: jruoho-x86intr
Changes since 1.28: +3 -5 lines
Diff to previous 1.28 (colored)

- Fix a few possible locking issues in execve1() and exit1().  Add a note
  that scheduler locks are special in this regard - adaptive locks cannot
  be in the path due to turnstiles.  Randomly spotted/reported by uebayasi@.
- Remove unused lwp_relock() and replace lwp_lock_retry() by simplifying
  lwp_lock() and sleepq_enter() a little.
- Give alllwp its own cache-line and mark lwp_cache pointer as read-mostly.

OK ad@

Revision 1.21.2.3 / (download) - annotate - [select for diffs], Fri Oct 22 07:22:29 2010 UTC (12 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.21.2.2: +1 -1 lines
Diff to previous 1.21.2.2 (colored) to branchpoint 1.21 (colored) next main 1.22 (colored)

Sync with HEAD (-D20101022).

Revision 1.28 / (download) - annotate - [select for diffs], Fri Oct 15 05:39:19 2010 UTC (12 years, 3 months ago) by rmind
Branch: MAIN
CVS Tags: uebayasi-xip-base4, uebayasi-xip-base3
Changes since 1.27: +3 -3 lines
Diff to previous 1.27 (colored)

Re-enable direct select.

Revision 1.21.2.2 / (download) - annotate - [select for diffs], Tue Aug 17 06:47:31 2010 UTC (12 years, 5 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.21.2.1: +137 -36 lines
Diff to previous 1.21.2.1 (colored) to branchpoint 1.21 (colored)

Sync with HEAD.

Revision 1.5.2.5 / (download) - annotate - [select for diffs], Wed Aug 11 22:54:42 2010 UTC (12 years, 5 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.5.2.4: +194 -80 lines
Diff to previous 1.5.2.4 (colored) to branchpoint 1.5 (colored) next main 1.6 (colored)

sync with head.

Revision 1.27 / (download) - annotate - [select for diffs], Mon Jul 12 11:04:25 2010 UTC (12 years, 6 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base2
Changes since 1.26: +3 -3 lines
Diff to previous 1.26 (colored)

sel_setevents: fix error - match event-set, as intended.
Spotted by Enami Tsugutomo.

Revision 1.26 / (download) - annotate - [select for diffs], Sun Jul 11 11:17:58 2010 UTC (12 years, 7 months ago) by rmind
Branch: MAIN
Changes since 1.25: +6 -2 lines
Diff to previous 1.25 (colored)

Disable direct select for now, since it still brings problems.

Revision 1.25 / (download) - annotate - [select for diffs], Sat Jul 10 17:04:25 2010 UTC (12 years, 7 months ago) by rmind
Branch: MAIN
Changes since 1.24: +5 -4 lines
Diff to previous 1.24 (colored)

sel_setevents: fix direct injecting of fd bit for select() case.

Revision 1.24 / (download) - annotate - [select for diffs], Thu Jul 8 23:15:23 2010 UTC (12 years, 7 months ago) by rmind
Branch: MAIN
Changes since 1.23: +2 -3 lines
Diff to previous 1.23 (colored)

sel_do_scan: do not bother to assert for SEL_SCANNING state before blocking,
as it might also be SEL_BLOCKING due to spurious wake-ups.  That has no harm.

Revision 1.23 / (download) - annotate - [select for diffs], Thu Jul 8 12:23:31 2010 UTC (12 years, 7 months ago) by rmind
Branch: MAIN
Changes since 1.22: +135 -38 lines
Diff to previous 1.22 (colored)

Implement direct select/poll support, currently effective for socket and
pipe subsystems.  Avoids overhead of second selscan() on wake-up, and thus
improves performance on certain workloads (especially when polling on many
file-descriptors).  Also, clean-up sys/fd_set.h header and improve macros.

Welcome to 5.99.36!

Revision 1.21.4.1 / (download) - annotate - [select for diffs], Sun May 30 05:17:58 2010 UTC (12 years, 8 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.21: +58 -45 lines
Diff to previous 1.21 (colored)

sync with head

Revision 1.21.2.1 / (download) - annotate - [select for diffs], Fri Apr 30 14:44:12 2010 UTC (12 years, 9 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.21: +58 -45 lines
Diff to previous 1.21 (colored)

Sync with HEAD.

Revision 1.22 / (download) - annotate - [select for diffs], Sun Apr 25 15:55:24 2010 UTC (12 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: uebayasi-xip-base1
Changes since 1.21: +58 -45 lines
Diff to previous 1.21 (colored)

Make select/poll work with more than 32 CPUs.
No ABI change.

Revision 1.5.2.4 / (download) - annotate - [select for diffs], Thu Mar 11 15:04:19 2010 UTC (12 years, 11 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.5.2.3: +133 -188 lines
Diff to previous 1.5.2.3 (colored) to branchpoint 1.5 (colored)

sync with head

Revision 1.21 / (download) - annotate - [select for diffs], Sun Dec 20 23:00:59 2009 UTC (13 years, 1 month ago) by rmind
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, uebayasi-xip-base
Branch point for: uebayasi-xip, rmind-uvmplock
Changes since 1.20: +17 -3 lines
Diff to previous 1.20 (colored)

Add comment about locking.

Revision 1.20 / (download) - annotate - [select for diffs], Sat Dec 12 17:47:05 2009 UTC (13 years, 1 month ago) by dsl
Branch: MAIN
CVS Tags: matt-premerge-20091211
Changes since 1.19: +24 -21 lines
Diff to previous 1.19 (colored)

Bounding the 'nfds' arg to poll() at the current process limit for actual
open files is rather gross - the poll map isn't required to be dense.
Instead limit to a much larger value (1000 + dt_nfiles) so that user
programs cannot allocate indefinite sized blocks of kvm.
If the limit is exceeded, then return EINVAL instead of silently truncating
the list.
(The silent truncation in select isn't quite as bad - although even there
any high bits that are set ought to generate an EBADF response.)
Move the code that converts ERESTART and EWOULDBLOCK into common code.
Effectively fixes PR/17507 since the new limit is unlikely to be detected.

Revision 1.19 / (download) - annotate - [select for diffs], Wed Nov 11 09:48:51 2009 UTC (13 years, 2 months ago) by rmind
Branch: MAIN
Changes since 1.18: +16 -20 lines
Diff to previous 1.18 (colored)

- selcommon/pollcommon: drop redundant l argument.
- Use cached curlwp->l_fd, instead of p->p_fd.
- Inline selscan/pollscan.

Revision 1.18 / (download) - annotate - [select for diffs], Sun Nov 1 21:46:09 2009 UTC (13 years, 3 months ago) by rmind
Branch: MAIN
Changes since 1.17: +2 -29 lines
Diff to previous 1.17 (colored)

- Move inittimeleft() and gettimeleft() to subr_time.c, where they belong.
- Move abstimeout2timo() there too and export.  Use it in lwp_park().

Revision 1.17 / (download) - annotate - [select for diffs], Sun Nov 1 21:14:21 2009 UTC (13 years, 3 months ago) by rmind
Branch: MAIN
Changes since 1.16: +92 -130 lines
Diff to previous 1.16 (colored)

Move common logic in selcommon() and pollcommon() into sel_do_scan().
Avoids code duplication.  XXX: pollsock() should be converted too, except
it's a bit ugly.

Revision 1.16 / (download) - annotate - [select for diffs], Wed Oct 21 21:12:06 2009 UTC (13 years, 3 months ago) by rmind
Branch: MAIN
CVS Tags: jym-xensuspend-nbase
Changes since 1.15: +4 -7 lines
Diff to previous 1.15 (colored)

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.12.2.2 / (download) - annotate - [select for diffs], Thu Jul 23 23:32:35 2009 UTC (13 years, 6 months ago) by jym
Branch: jym-xensuspend
Changes since 1.12.2.1: +10 -8 lines
Diff to previous 1.12.2.1 (colored) to branchpoint 1.12 (colored) next main 1.13 (colored)

Sync with HEAD.

Revision 1.5.2.3 / (download) - annotate - [select for diffs], Sat Jun 20 07:20:31 2009 UTC (13 years, 7 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.5.2.2: +10 -8 lines
Diff to previous 1.5.2.2 (colored) to branchpoint 1.5 (colored)

sync with head

Revision 1.15 / (download) - annotate - [select for diffs], Sun May 24 21:41:26 2009 UTC (13 years, 8 months ago) by ad
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, jymxensuspend-base
Changes since 1.14: +10 -8 lines
Diff to previous 1.14 (colored)

More changes to improve kern_descrip.c.

- Avoid atomics in more places.
- Remove the per-descriptor mutex, and just use filedesc_t::fd_lock.
  It was only being used to synchronize close, and in any case we needed
  to take fd_lock to free the descriptor slot.
- Optimize certain paths for the <NDFDFILE case.
- Sprinkle more comments and assertions.
- Cache more stuff in filedesc_t.
- Fix numerous minor bugs spotted along the way.
- Restructure how the open files array is maintained, for clarity and so
  that we can eliminate the membar_consumer() call in fd_getfile().  This is
  mostly syntactic sugar; the main functional change is that fd_nfiles now
  lives alongside the open file array.

Some measurements with libmicro:

- simple file syscalls are like close() are between 1 to 10% faster.
- some nice improvements, e.g. poll(1000) which is ~50% faster.

Revision 1.12.2.1 / (download) - annotate - [select for diffs], Wed May 13 17:21:57 2009 UTC (13 years, 8 months ago) by jym
Branch: jym-xensuspend
Changes since 1.12: +79 -74 lines
Diff to previous 1.12 (colored)

Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.

Revision 1.5.2.2 / (download) - annotate - [select for diffs], Mon May 4 08:13:48 2009 UTC (13 years, 9 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.5.2.1: +104 -97 lines
Diff to previous 1.5.2.1 (colored) to branchpoint 1.5 (colored)

sync with head.

Revision 1.10.2.2 / (download) - annotate - [select for diffs], Tue Apr 28 07:37:00 2009 UTC (13 years, 9 months ago) by skrll
Branch: nick-hppapmap
Changes since 1.10.2.1: +79 -74 lines
Diff to previous 1.10.2.1 (colored) to branchpoint 1.10 (colored) next main 1.11 (colored)

Sync with HEAD.

Revision 1.14 / (download) - annotate - [select for diffs], Sun Mar 29 19:21:19 2009 UTC (13 years, 10 months ago) by christos
Branch: MAIN
CVS Tags: yamt-nfs-mp-base4, yamt-nfs-mp-base3, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base, jym-xensuspend-base
Changes since 1.13: +45 -51 lines
Diff to previous 1.13 (colored)

Move the internal poll/select related API's to use timespec instead
of timeval (rides the uvm bump).

Revision 1.13 / (download) - annotate - [select for diffs], Sat Mar 21 13:11:14 2009 UTC (13 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.12: +36 -25 lines
Diff to previous 1.12 (colored)

Allocate sleep queue locks with mutex_obj_alloc. Reduces memory usage
on !MP kernels, and reduces false sharing on MP ones.

Revision 1.10.2.1 / (download) - annotate - [select for diffs], Mon Jan 19 13:19:39 2009 UTC (14 years ago) by skrll
Branch: nick-hppapmap
Changes since 1.10: +19 -16 lines
Diff to previous 1.10 (colored)

Sync with HEAD.

Revision 1.3.4.5 / (download) - annotate - [select for diffs], Sat Jan 17 13:29:20 2009 UTC (14 years ago) by mjf
Branch: mjf-devfs2
Changes since 1.3.4.4: +18 -15 lines
Diff to previous 1.3.4.4 (colored) next main 1.4 (colored)

Sync with HEAD.

Revision 1.12 / (download) - annotate - [select for diffs], Sun Jan 11 02:45:52 2009 UTC (14 years ago) by christos
Branch: MAIN
CVS Tags: nick-hppapmap-base2, mjf-devfs2-base
Branch point for: jym-xensuspend
Changes since 1.11: +8 -5 lines
Diff to previous 1.11 (colored)

merge christos-time_t

Revision 1.3.2.4 / (download) - annotate - [select for diffs], Sat Dec 27 23:14:24 2008 UTC (14 years, 1 month ago) by christos
Branch: christos-time_t
Changes since 1.3.2.3: +13 -13 lines
Diff to previous 1.3.2.3 (colored) next main 1.4 (colored)

merge with head.

Revision 1.9.4.2 / (download) - annotate - [select for diffs], Sat Dec 13 01:15:09 2008 UTC (14 years, 1 month ago) by haad
Branch: haad-dm
Changes since 1.9.4.1: +13 -13 lines
Diff to previous 1.9.4.1 (colored) to branchpoint 1.9 (colored) next main 1.10 (colored)

Update haad-dm branch to haad-dm-base2.

Revision 1.11 / (download) - annotate - [select for diffs], Thu Nov 20 01:25:28 2008 UTC (14 years, 2 months ago) by yamt
Branch: MAIN
CVS Tags: haad-nbase2, haad-dm-base2, haad-dm-base, christos-time_t-nbase, christos-time_t-base, ad-audiomp2-base, ad-audiomp2
Changes since 1.10: +13 -13 lines
Diff to previous 1.10 (colored)

pollcommon: use a more appropriate type than char[].

Revision 1.3.2.3 / (download) - annotate - [select for diffs], Sat Nov 1 21:22:27 2008 UTC (14 years, 3 months ago) by christos
Branch: christos-time_t
Changes since 1.3.2.2: +28 -34 lines
Diff to previous 1.3.2.2 (colored)

Sync with head.

Revision 1.9.4.1 / (download) - annotate - [select for diffs], Sun Oct 19 22:17:28 2008 UTC (14 years, 3 months ago) by haad
Branch: haad-dm
Changes since 1.9: +3 -3 lines
Diff to previous 1.9 (colored)

Sync with HEAD.

Revision 1.10 / (download) - annotate - [select for diffs], Wed Oct 15 08:13:17 2008 UTC (14 years, 3 months ago) by ad
Branch: MAIN
CVS Tags: netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, haad-dm-base1
Branch point for: nick-hppapmap, netbsd-5-2, netbsd-5-1, netbsd-5
Changes since 1.9: +3 -3 lines
Diff to previous 1.9 (colored)

- Rename cpu_lookup_byindex() to cpu_lookup(). The hardware ID isn't of
  interest to MI code. No functional change.
- Change /dev/cpu to operate on cpu index, not hardware ID. Now cpuctl
  shouldn't print confused output.

Revision 1.7.2.3 / (download) - annotate - [select for diffs], Mon Jun 23 04:31:51 2008 UTC (14 years, 7 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.7.2.2: +16 -17 lines
Diff to previous 1.7.2.2 (colored) to branchpoint 1.7 (colored) next main 1.8 (colored)

Sync w/ -current. 34 merge conflicts to follow.

Revision 1.4.2.3 / (download) - annotate - [select for diffs], Tue Jun 17 09:15:03 2008 UTC (14 years, 7 months ago) by yamt
Branch: yamt-pf42
Changes since 1.4.2.2: +10 -6 lines
Diff to previous 1.4.2.2 (colored) to branchpoint 1.4 (colored) next main 1.5 (colored)

sync with head.

Revision 1.3.4.4 / (download) - annotate - [select for diffs], Thu Jun 5 19:14:36 2008 UTC (14 years, 8 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.3.4.3: +8 -4 lines
Diff to previous 1.3.4.3 (colored)

Sync with HEAD.

Also fix build.

Revision 1.9 / (download) - annotate - [select for diffs], Wed Jun 4 13:02:41 2008 UTC (14 years, 8 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-pf42-base4, wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, simonb-wapbl-nbase, simonb-wapbl-base, simonb-wapbl
Branch point for: haad-dm
Changes since 1.8: +10 -6 lines
Diff to previous 1.8 (colored)

Check the result of allocation in the cases where size is passed by user.

Revision 1.4.2.2 / (download) - annotate - [select for diffs], Wed Jun 4 02:05:40 2008 UTC (14 years, 8 months ago) by yamt
Branch: yamt-pf42
Changes since 1.4.2.1: +8 -13 lines
Diff to previous 1.4.2.1 (colored) to branchpoint 1.4 (colored)

sync with head

Revision 1.3.4.3 / (download) - annotate - [select for diffs], Mon Jun 2 13:24:12 2008 UTC (14 years, 8 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.3.4.2: +17 -27 lines
Diff to previous 1.3.4.2 (colored)

Sync with HEAD.

Revision 1.8 / (download) - annotate - [select for diffs], Mon May 26 12:08:39 2008 UTC (14 years, 8 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base3
Changes since 1.7: +8 -13 lines
Diff to previous 1.7 (colored)

Take the mutex pointer and waiters count out of sleepq_t: the values can
be or are maintained elsewhere. Now a sleepq_t is just a TAILQ_HEAD.

Revision 1.4.2.1 / (download) - annotate - [select for diffs], Sun May 18 12:35:10 2008 UTC (14 years, 8 months ago) by yamt
Branch: yamt-pf42
Changes since 1.4: +12 -17 lines
Diff to previous 1.4 (colored)

sync with head.

Revision 1.5.2.1 / (download) - annotate - [select for diffs], Fri May 16 02:25:27 2008 UTC (14 years, 8 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.5: +4 -9 lines
Diff to previous 1.5 (colored)

sync with head.

Revision 1.7.2.2 / (download) - annotate - [select for diffs], Wed May 14 19:54:12 2008 UTC (14 years, 8 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.7.2.1: +10 -10 lines
Diff to previous 1.7.2.1 (colored) to branchpoint 1.7 (colored)

Per discussion with ad at n dot o, revert signal mask handling
changes.

The l_sigstk changes are most likely totally un-needed as SA will
never use a signal stack - we send an upcall (or will as other
diffs are brought in).

The l_sigmask changes were too controvertial. In all honesty, I
think it's probably best to revert them. The main reason they were
there is the fact that in an SA process, we don't mask signals per
kernel thread, we mask them per user thread. In the kernel, we want
them all to get turned into upcalls. Thus the normal state of
l_sigmask in an SA process is for it to always be empty.

While we are in the process of delivering a signal, we want to
temporarily mask a signal (so we don't recursively exhaust our
upcall stacks). However signal delivery is rare (important, but
rare), and delivering back-to-back signals is even rarer. So rather
than cause every user of a signal mask to be prepared for this very
rare case, we will just add a second check later in the signal
delivery code. Said change is not in this diff.

This also un-compensates all of our compatability code for dealing
with SA. SA is a NetBSD-specific thing, so there's no need for
Irix, Linux, Solaris, SVR4 and so on to cope with it.

As previously, everything other than kern_sa.c compiles in i386
GENERIC as of this checkin. I will switch to ALL soon for compile
testing.

Revision 1.7.2.1 / (download) - annotate - [select for diffs], Sat May 10 23:49:05 2008 UTC (14 years, 9 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.7: +10 -10 lines
Diff to previous 1.7 (colored)

Initial checkin of re-adding SA. Everything except kern_sa.c
compiles in GENERIC for i386. This is still a work-in-progress, but
this checkin covers most of the mechanical work (changing signalling
to be able to accomidate SA's process-wide signalling and re-adding
includes of sys/sa.h and savar.h). Subsequent changes will be much
more interesting.

Also, kern_sa.c has received partial cleanup. There's still more
to do, though.

Revision 1.7 / (download) - annotate - [select for diffs], Wed Apr 30 12:45:21 2008 UTC (14 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base2, yamt-nfs-mp-base2, hpcarm-cleanup-nbase
Branch point for: wrstuden-revivesa
Changes since 1.6: +4 -2 lines
Diff to previous 1.6 (colored)

PR kern/38547 select/poll do not set l_kpriority

Among other things this could have made X11 seem sluggish.

Revision 1.6 / (download) - annotate - [select for diffs], Mon Apr 28 20:24:04 2008 UTC (14 years, 9 months ago) by martin
Branch: MAIN
Changes since 1.5: +2 -9 lines
Diff to previous 1.5 (colored)

Remove clause 3 and 4 from TNF licenses

Revision 1.5 / (download) - annotate - [select for diffs], Thu Apr 24 18:39:24 2008 UTC (14 years, 9 months ago) by ad
Branch: MAIN
CVS Tags: yamt-nfs-mp-base
Branch point for: yamt-nfs-mp
Changes since 1.4: +10 -10 lines
Diff to previous 1.4 (colored)

Merge proc::p_mutex and proc::p_smutex into a single adaptive mutex, since
we no longer need to guard against access from hardware interrupt handlers.

Additionally, if cloning a process with CLONE_SIGHAND, arrange to have the
child process share the parent's lock so that signal state may be kept in
sync. Partially addresses PR kern/37437.

Revision 1.4 / (download) - annotate - [select for diffs], Thu Apr 17 14:02:24 2008 UTC (14 years, 9 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base
Branch point for: yamt-pf42
Changes since 1.3: +3 -3 lines
Diff to previous 1.3 (colored)

s/selwakeup/selnotify/ in a comment.

Revision 1.3.4.2 / (download) - annotate - [select for diffs], Thu Apr 3 12:43:05 2008 UTC (14 years, 10 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.3.4.1: +841 -0 lines
Diff to previous 1.3.4.1 (colored)

Sync with HEAD.

Revision 1.3.2.2 / (download) - annotate - [select for diffs], Sat Mar 29 20:47:01 2008 UTC (14 years, 10 months ago) by christos
Branch: christos-time_t
Changes since 1.3.2.1: +844 -0 lines
Diff to previous 1.3.2.1 (colored)

Welcome to the time_t=long long dev_t=uint64_t branch.

Revision 1.3.4.1, Sat Mar 29 14:08:35 2008 UTC (14 years, 10 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.3: +0 -841 lines
FILE REMOVED

file sys_select.c was added on branch mjf-devfs2 on 2008-04-03 12:43:04 +0000

Revision 1.3.2.1, Sat Mar 29 14:08:35 2008 UTC (14 years, 10 months ago) by christos
Branch: christos-time_t
Changes since 1.3: +0 -841 lines
FILE REMOVED

file sys_select.c was added on branch christos-time_t on 2008-03-29 20:47:01 +0000

Revision 1.3 / (download) - annotate - [select for diffs], Sat Mar 29 14:08:35 2008 UTC (14 years, 10 months ago) by ad
Branch: MAIN
Branch point for: mjf-devfs2, christos-time_t
Changes since 1.2: +4 -4 lines
Diff to previous 1.2 (colored)

selwakeup: convert a while() loop into a do/while() since the first test
isn't needed.

Revision 1.2 / (download) - annotate - [select for diffs], Thu Mar 27 18:30:15 2008 UTC (14 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.1: +5 -5 lines
Diff to previous 1.1 (colored)

Replace use of CACHE_LINE_SIZE in some obvious places.

Revision 1.1.2.2 / (download) - annotate - [select for diffs], Mon Mar 24 09:39:02 2008 UTC (14 years, 10 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.1.2.1: +841 -0 lines
Diff to previous 1.1.2.1 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored)

sync with head.

Revision 1.1.2.1, Sun Mar 23 14:02:49 2008 UTC (14 years, 10 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.1: +0 -841 lines
FILE REMOVED

file sys_select.c was added on branch yamt-lazymbuf on 2008-03-24 09:39:02 +0000

Revision 1.1 / (download) - annotate - [select for diffs], Sun Mar 23 14:02:49 2008 UTC (14 years, 10 months ago) by ad
Branch: MAIN
CVS Tags: yamt-lazymbuf-base15, yamt-lazymbuf-base14, ad-socklock-base1
Branch point for: yamt-lazymbuf

Split select/poll into their own file.

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>