The NetBSD Project

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

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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.11 / (download) - annotate - [select for diffs], Fri Feb 24 11:02:27 2023 UTC (13 months, 3 weeks ago) by riastradh
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, HEAD
Changes since 1.10: +2 -14 lines
Diff to previous 1.10 (colored) to selected 1.2.2.2 (colored)

kern: Eliminate most __HAVE_ATOMIC_AS_MEMBAR conditionals.

I'm leaving in the conditional around the legacy membar_enters
(store-before-load, store-before-store) in kern_mutex.c and in
kern_lock.c because they may still matter: store-before-load barriers
tend to be the most expensive kind, so eliding them is probably
worthwhile on x86.  (It also may not matter; I just don't care to do
measurements right now, and it's a single valid and potentially
justifiable use case in the whole tree.)

However, membar_release/acquire can be mere instruction barriers on
all TSO platforms including x86, so there's no need to go out of our
way with a bad API to conditionalize them.  If the procedure call
overhead is measurable we just could change them to be macros on x86
that expand into __insn_barrier.

Discussed on tech-kern:
https://mail-index.netbsd.org/tech-kern/2023/02/23/msg028729.html

Revision 1.10 / (download) - annotate - [select for diffs], Sat Apr 9 23:51:22 2022 UTC (2 years ago) by riastradh
Branch: MAIN
CVS Tags: netbsd-10-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, netbsd-10-0-RC1, netbsd-10, bouyer-sunxi-drm-base, bouyer-sunxi-drm
Changes since 1.9: +9 -9 lines
Diff to previous 1.9 (colored) to selected 1.2.2.2 (colored)

ipi(9): Convert membar_exit/enter to membar_release/acquire.

No store-before-load ordering needed here, just need to ensure that
in

	A, ipi_send, ipi receive, B,

memory operations in A happen-before memory operations in B.

Revision 1.8.2.1 / (download) - annotate - [select for diffs], Mon Dec 14 14:38:14 2020 UTC (3 years, 4 months ago) by thorpej
Branch: thorpej-futex
Changes since 1.8: +26 -16 lines
Diff to previous 1.8 (colored) next main 1.9 (colored) to selected 1.2.2.2 (colored)

Sync w/ HEAD.

Revision 1.9 / (download) - annotate - [select for diffs], Fri Nov 27 20:11:33 2020 UTC (3 years, 4 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-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.8: +26 -16 lines
Diff to previous 1.8 (colored) to selected 1.2.2.2 (colored)

ipi: Membar audit.

Revision 1.8 / (download) - annotate - [select for diffs], Tue Sep 8 16:00:35 2020 UTC (3 years, 7 months ago) by riastradh
Branch: MAIN
Branch point for: thorpej-futex
Changes since 1.7: +18 -12 lines
Diff to previous 1.7 (colored) to selected 1.2.2.2 (colored)

ipi: Split up initialization into two parts.

First part runs early so ipi_register can be used in module
initialization, e.g. via pktqueue_create; second part runs after CPUs
have been detected.

Revision 1.3.18.2 / (download) - annotate - [select for diffs], Mon Apr 13 08:05:04 2020 UTC (4 years ago) by martin
Branch: phil-wifi
Changes since 1.3.18.1: +6 -3 lines
Diff to previous 1.3.18.1 (colored) to branchpoint 1.3 (colored) next main 1.4 (colored) to selected 1.2.2.2 (colored)

Mostly merge changes from HEAD upto 20200411

Revision 1.7 / (download) - annotate - [select for diffs], Wed Oct 16 18:29:49 2019 UTC (4 years, 6 months ago) by christos
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, 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
Changes since 1.6: +3 -3 lines
Diff to previous 1.6 (colored) to selected 1.2.2.2 (colored)

Add and use __FPTRCAST, requested by uwe@

Revision 1.6 / (download) - annotate - [select for diffs], Wed Oct 16 15:27:38 2019 UTC (4 years, 6 months ago) by christos
Branch: MAIN
Changes since 1.5: +3 -3 lines
Diff to previous 1.5 (colored) to selected 1.2.2.2 (colored)

Add void * function pointer casts. There are different ways to "fix" those
warnings:
    1. this one: add a void * cast (which I think is the least intrusive)
    2. add pragmas to elide the warning
    3. add intermediate inline conversion functions
    4. change the called function prototypes, adding unused arguments and
       converting some of the pointer arguments to void *.
    5. make the functions varyadic (which defeats the purpose of checking)
    6. pass command line flags to elide the warning
I did try 3 and 4 and I was not pleased with the result (sys_ptrace_common.c)
(3) added too much code and defines, and (4) made the regular use clumsy.

Revision 1.4.4.1 / (download) - annotate - [select for diffs], Fri Sep 6 19:37:51 2019 UTC (4 years, 7 months ago) by martin
Branch: netbsd-9
CVS Tags: netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1
Changes since 1.4: +5 -2 lines
Diff to previous 1.4 (colored) next main 1.5 (colored) to selected 1.2.2.2 (colored)

Pull up following revision(s) (requested by ryo in ticket #181):

	sys/kern/subr_ipi.c: revision 1.5

Requires memory barrier before IPI ack.
Problem was seen on the aarch64 cpus.
Fixes PR/54009

Revision 1.5 / (download) - annotate - [select for diffs], Thu Sep 5 09:20:05 2019 UTC (4 years, 7 months ago) by ryo
Branch: MAIN
Changes since 1.4: +5 -2 lines
Diff to previous 1.4 (colored) to selected 1.2.2.2 (colored)

requires memory barrier before IPI ack.
Problem was seen on the aarch64 cpus.

Fixes PR/54009

Revision 1.3.18.1 / (download) - annotate - [select for diffs], Mon Jun 10 22:09:03 2019 UTC (4 years, 10 months ago) by christos
Branch: phil-wifi
Changes since 1.3: +53 -15 lines
Diff to previous 1.3 (colored) to selected 1.2.2.2 (colored)

Sync with HEAD

Revision 1.4 / (download) - annotate - [select for diffs], Sat Apr 6 02:59:05 2019 UTC (5 years ago) by thorpej
Branch: MAIN
CVS Tags: phil-wifi-20190609, netbsd-9-base, isaki-audio2-base, isaki-audio2
Branch point for: netbsd-9
Changes since 1.3: +53 -15 lines
Diff to previous 1.3 (colored) to selected 1.2.2.2 (colored)

Add an ipi_trigger_broadcast() call, like ipi_trigger_multi() but to the
full set of attached CPUs, with an optional "skip_self" argument to skip
the calling CPU.  Add a "skip_self" to the ipi_broadcast() call for
symmetry.

(Kernel version bump coming in a subsequent commit.)

Revision 1.2.6.3 / (download) - annotate - [select for diffs], Sun Dec 3 11:38:45 2017 UTC (6 years, 4 months ago) by jdolecek
Branch: tls-maxphys
Changes since 1.2.6.2: +30 -0 lines
Diff to previous 1.2.6.2 (colored) to branchpoint 1.2 (colored) next main 1.3 (colored) to selected 1.2.2.2 (colored)

update from HEAD

Revision 1.2.8.1 / (download) - annotate - [select for diffs], Mon Apr 6 15:18:20 2015 UTC (9 years ago) by skrll
Branch: nick-nhusb
Changes since 1.2: +32 -2 lines
Diff to previous 1.2 (colored) next main 1.3 (colored) to selected 1.2.2.2 (colored)

Sync with HEAD

Revision 1.3 / (download) - annotate - [select for diffs], Sun Jan 18 23:16:35 2015 UTC (9 years, 2 months ago) by rmind
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, 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, 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, netbsd-8-base, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: phil-wifi
Changes since 1.2: +32 -2 lines
Diff to previous 1.2 (colored) to selected 1.2.2.2 (colored)

Implement ipi_trigger_multi(9); requested by cherry@.

Revision 1.2.6.2 / (download) - annotate - [select for diffs], Wed Aug 20 00:04:29 2014 UTC (9 years, 7 months ago) by tls
Branch: tls-maxphys
Changes since 1.2.6.1: +378 -0 lines
Diff to previous 1.2.6.1 (colored) to branchpoint 1.2 (colored) to selected 1.2.2.2 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.2.2.2 / (download) - annotate - [selected], Sun Aug 10 06:55:58 2014 UTC (9 years, 8 months ago) by tls
Branch: tls-earlyentropy
Changes since 1.2.2.1: +378 -0 lines
Diff to previous 1.2.2.1 (colored) to branchpoint 1.2 (colored) next main 1.3 (colored)

Rebase.

Revision 1.2.6.1, Sun May 25 15:34:19 2014 UTC (9 years, 10 months ago) by tls
Branch: tls-maxphys
Changes since 1.2: +0 -378 lines
FILE REMOVED

file subr_ipi.c was added on branch tls-maxphys on 2014-08-20 00:04:29 +0000

Revision 1.2.2.1, Sun May 25 15:34:19 2014 UTC (9 years, 10 months ago) by tls
Branch: tls-earlyentropy
Changes since 1.2: +0 -378 lines
FILE REMOVED

file subr_ipi.c was added on branch tls-earlyentropy on 2014-08-10 06:55:58 +0000

Revision 1.2 / (download) - annotate - [select for diffs], Sun May 25 15:34:19 2014 UTC (9 years, 10 months ago) by rmind
Branch: MAIN
CVS Tags: tls-maxphys-base, tls-earlyentropy-base, 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
Branch point for: tls-maxphys, tls-earlyentropy, nick-nhusb
Changes since 1.1: +149 -9 lines
Diff to previous 1.1 (colored) to selected 1.2.2.2 (colored)

MI IPI interface:
- Implement support for the asynchronous IPI calls.
- Rework synchronous IPI code to reuse the asynchronous mechanism.
- Add ipi(9) manual page; needs wizd(8).

Note: MD code can now provide a low level primitive for the ipi(9) and
reuse this interface instead of open-coding.  Portmasters are encouraged
to convert.  Ride 6.99.43!

Revision 1.1 / (download) - annotate - [select for diffs], Mon May 19 22:47:54 2014 UTC (9 years, 11 months ago) by rmind
Branch: MAIN
Diff to selected 1.2.2.2 (colored)

Implement MI IPI interface with cross-call support.

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>