Re: Please do not yell at people for trying to help you.

2010-11-20 Thread Matt Thomas
On Nov 20, 2010, at 12:25 AM, Johnny Billquist wrote: > Matt, > > On 2010-11-13 04:17, Matt Thomas wrote: >> The VAX now has a fast non-MP emulation of atomic_cas so that should be >> less of an issue. > > I looked at this code, as well as your musings about the design. Did you miss > one step

Re: Please do not yell at people for trying to help you.

2010-11-20 Thread Johnny Billquist
Matt, On 2010-11-13 04:17, Matt Thomas wrote: The VAX now has a fast non-MP emulation of atomic_cas so that should be less of an issue. I looked at this code, as well as your musings about the design. Did you miss one step in there, or did I miss something? I thought that we needed to reset

Re: Vax interlock insn's (Re: Please do not yell at people for trying to help you.)

2010-11-15 Thread David Holland
On Mon, Nov 15, 2010 at 05:40:05PM +0100, Johnny Billquist wrote: > [...] but rwlocks can not be fixed without more work. :-( I wouldn't be particularly surprised if replacing the current overbred rwlock code with a simple implementation using a single mutex and condvar made it go faster... or at

Re: Vax interlock insn's (Re: Please do not yell at people for trying to help you.)

2010-11-15 Thread Johnny Billquist
On 11/13/10 11:16, Anders Magnusson wrote: (a little side-note, but may be interesting) On 11/13/2010 04:17 AM, Matt Thomas wrote: Eventually, most operations come down to compare and swap. It's just too damn useful to not have as a primitive. Even if some of the platforms have to emulate it so

Re: Please do not yell at people for trying to help you.

2010-11-14 Thread David Holland
On Fri, Nov 12, 2010 at 08:31:39PM +, Eduardo Horvath wrote: > No it doesen't because all those macros assume the value is being > transferred from one register to another rather than regiser to memory. > The assignment: > > foo.size = htole64(size); > > Cannot be replaced with: >

Vax interlock insn's (Re: Please do not yell at people for trying to help you.)

2010-11-13 Thread Anders Magnusson
(a little side-note, but may be interesting) On 11/13/2010 04:17 AM, Matt Thomas wrote: Eventually, most operations come down to compare and swap. It's just too damn useful to not have as a primitive. Even if some of the platforms have to emulate it somehow. Just because an architecture is 30

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Matt Thomas
On Nov 12, 2010, at 8:02 PM, Johnny Billquist wrote: > On 2010-11-13 04:49, Matt Thomas wrote: >> >> simple locks are not mutexes. mutexes are more complex and >> test-and-set isn't adequate to do the job. > > I (obviously) totally disagree... :-) > A mutex is simply just an object that only o

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Johnny Billquist
On 2010-11-13 04:49, Matt Thomas wrote: On Nov 12, 2010, at 7:39 PM, Johnny Billquist wrote: Eh...? Now I'm not following you. Yes, if you grab a lock in some code, and then get an interrupt, and in that interrupt routine, you try to grab the same lock, you loose. That should be pretty obviou

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Matt Thomas
On Nov 12, 2010, at 7:39 PM, Johnny Billquist wrote: > > Eh...? > Now I'm not following you. > Yes, if you grab a lock in some code, and then get an interrupt, and in that > interrupt routine, you try to grab the same lock, you loose. > That should be pretty obvious. > How does using CAS to impl

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Johnny Billquist
On 2010-11-13 04:17, Matt Thomas wrote: On Nov 12, 2010, at 6:49 PM, Johnny Billquist wrote: On 2010-11-13 03:26, Thor Lancelot Simon wrote: On Sat, Nov 13, 2010 at 01:11:01AM +0100, Johnny Billquist wrote: It's pretty clear, looking at the VAX architecture and many of the early VAX models

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Matt Thomas
On Nov 12, 2010, at 6:49 PM, Johnny Billquist wrote: > On 2010-11-13 03:26, Thor Lancelot Simon wrote: >> On Sat, Nov 13, 2010 at 01:11:01AM +0100, Johnny Billquist wrote: >>> >>> I just wanted a mutex and a lock interface which I could inline, and >>> which only had the idea that I wanted to ta

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Johnny Billquist
On 2010-11-13 03:26, Thor Lancelot Simon wrote: On Sat, Nov 13, 2010 at 01:11:01AM +0100, Johnny Billquist wrote: I just wanted a mutex and a lock interface which I could inline, and which only had the idea that I wanted to take or release a mutex or a lock. Some additional functions, like upgr

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Thor Lancelot Simon
On Fri, Nov 12, 2010 at 06:35:32PM +, Eduardo Horvath wrote: > On Fri, 12 Nov 2010, Thor Lancelot Simon wrote: > > While support for other platforms are not being dropped, there does seem > to be an implicit assumption that everyone is running on x86 (or more > specifically amd64) and code s

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Thor Lancelot Simon
On Sat, Nov 13, 2010 at 01:11:01AM +0100, Johnny Billquist wrote: > > I just wanted a mutex and a lock interface which I could inline, and > which only had the idea that I wanted to take or release a mutex or a > lock. Some additional functions, like upgrading and downgrading rwlocks > is als

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Paul Koning
On Nov 12, 2010, at 5:32 PM, Thor Lancelot Simon wrote: > On Fri, Nov 12, 2010 at 01:58:59PM -0500, Paul Koning wrote: >> >> VAX support (and for that matter, pdp11 support) is still part of >> gcc-current. > > Yes, because a NetBSD developer brought it back to life! Ok, I get it now. Note t

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Eduardo Horvath
On Sat, 13 Nov 2010, Valeriy E. Ushakov wrote: > #define htole64(x) \ [blah] > > // just to exercise it a bit > struct s { > uint64_t foo[12]; > }; > > uint64_t > foo(struct s *s) > { > return s->foo[10] + htole64(s->foo[11]); > } >

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Johnny Billquist
On 2010-11-12 19:07, Thor Lancelot Simon wrote: On Fri, Nov 12, 2010 at 07:05:34PM +0200, Antti Kantee wrote: On Fri Nov 12 2010 at 15:25:04 +0100, Johnny Billquist wrote: Freeway design is not driven by the requirements of the horse. If a horse occasionally wants to gallop down a freeway, we'

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Paul Koning
On Nov 12, 2010, at 4:23 PM, Eduardo Horvath wrote: > On Sat, 13 Nov 2010, Valeriy E. Ushakov wrote: > >> On Fri, Nov 12, 2010 at 21:59:54 +0100, Joerg Sonnenberger wrote: >> >>> On Fri, Nov 12, 2010 at 08:31:39PM +, Eduardo Horvath wrote: The assignment: foo.size = htole64(

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Valeriy E. Ushakov
On Fri, Nov 12, 2010 at 21:29:58 +, Eduardo Horvath wrote: > > On Fri, Nov 12, 2010 at 09:23:07PM +, Eduardo Horvath wrote: > > > On Sat, 13 Nov 2010, Valeriy E. Ushakov wrote: > > > > > > > On Fri, Nov 12, 2010 at 21:59:54 +0100, Joerg Sonnenberger wrote: > > > > > > > > > On Fri, Nov 1

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Thor Lancelot Simon
On Fri, Nov 12, 2010 at 01:58:59PM -0500, Paul Koning wrote: > > VAX support (and for that matter, pdp11 support) is still part of gcc-current. Yes, because a NetBSD developer brought it back to life! -- Thor Lancelot Simont...@rek.tjls.com "We canno

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Joerg Sonnenberger
On Fri, Nov 12, 2010 at 09:29:58PM +, Eduardo Horvath wrote: > > Doesn't really matter, as the compiler can reorder that and with the > > right constraints, it certainly should. > > So instead of a single store you force a register spill, a load, and > another store? That's even worse than 8

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Eduardo Horvath
On Fri, 12 Nov 2010, Joerg Sonnenberger wrote: > On Fri, Nov 12, 2010 at 09:23:07PM +, Eduardo Horvath wrote: > > On Sat, 13 Nov 2010, Valeriy E. Ushakov wrote: > > > > > On Fri, Nov 12, 2010 at 21:59:54 +0100, Joerg Sonnenberger wrote: > > > > > > > On Fri, Nov 12, 2010 at 08:31:39PM +,

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Joerg Sonnenberger
On Fri, Nov 12, 2010 at 09:23:07PM +, Eduardo Horvath wrote: > On Sat, 13 Nov 2010, Valeriy E. Ushakov wrote: > > > On Fri, Nov 12, 2010 at 21:59:54 +0100, Joerg Sonnenberger wrote: > > > > > On Fri, Nov 12, 2010 at 08:31:39PM +, Eduardo Horvath wrote: > > > > The assignment: > > > > > >

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Eduardo Horvath
On Sat, 13 Nov 2010, Valeriy E. Ushakov wrote: > On Fri, Nov 12, 2010 at 21:59:54 +0100, Joerg Sonnenberger wrote: > > > On Fri, Nov 12, 2010 at 08:31:39PM +, Eduardo Horvath wrote: > > > The assignment: > > > > > > foo.size = htole64(size); > > > > > > Cannot be replaced with: > > > > > >

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Valeriy E. Ushakov
On Fri, Nov 12, 2010 at 21:59:54 +0100, Joerg Sonnenberger wrote: > On Fri, Nov 12, 2010 at 08:31:39PM +, Eduardo Horvath wrote: > > The assignment: > > > > foo.size = htole64(size); > > > > Cannot be replaced with: > > > > __inline __asm("stxa %1, [%0] ASI_LITLE" : &foo.size : size); > >

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Joerg Sonnenberger
On Fri, Nov 12, 2010 at 08:31:39PM +, Eduardo Horvath wrote: > The assignment: > > foo.size = htole64(size); > > Cannot be replaced with: > > __inline __asm("stxa %1, [%0] ASI_LITLE" : &foo.size : size); Actually, it should be possible to do exactly that if you allow the output register to

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Manuel Bouyer
On Fri, Nov 12, 2010 at 08:31:39PM +, Eduardo Horvath wrote: > > If you look at sys/endian.h, that is exactly the kind of abstraction the > > API makes easy to use. Just provide the proper inline functions for your > > platform. > > No it doesen't because all those macros assume the value is b

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Joerg Sonnenberger
On Fri, Nov 12, 2010 at 08:31:39PM +, Eduardo Horvath wrote: > > If you look at sys/endian.h, that is exactly the kind of abstraction the > > API makes easy to use. Just provide the proper inline functions for your > > platform. > > No it doesen't because all those macros assume the value is b

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Eduardo Horvath
On Fri, 12 Nov 2010, Joerg Sonnenberger wrote: > On Fri, Nov 12, 2010 at 06:35:32PM +, Eduardo Horvath wrote: > > Take, for example, the simple act of byte swapping network data. x86 has > > a bswap instruction. SPARC and PowerPC architectures have a multiplexer > > on the load/store. (Do

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Joerg Sonnenberger
On Fri, Nov 12, 2010 at 06:35:32PM +, Eduardo Horvath wrote: > Take, for example, the simple act of byte swapping network data. x86 has > a bswap instruction. SPARC and PowerPC architectures have a multiplexer > on the load/store. (Don't know about MIPS, don't remember about ARM.) In > o

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Paul Koning
On Nov 12, 2010, at 1:07 PM, Thor Lancelot Simon wrote: > ... > What Antti said. And, further, I would like to point out that you (Johnny) > didn't step forward and resuscitate VAX support in GCC -- one of the same > NetBSD developers you're lambasting for not caring enough about whether > old a

Re: Please do not yell at people for trying to help you.

2010-11-12 Thread Eduardo Horvath
On Fri, 12 Nov 2010, Thor Lancelot Simon wrote: > The claim that NetBSD only cares about x86 is even more absurd. NetBSD > supports a huge array of architectures, usually in both their modern and > ancient implementations. We'll run on everything from R2000 to the newest > multicore 64-bit MIPS

Please do not yell at people for trying to help you.

2010-11-12 Thread Thor Lancelot Simon
On Fri, Nov 12, 2010 at 07:05:34PM +0200, Antti Kantee wrote: > On Fri Nov 12 2010 at 15:25:04 +0100, Johnny Billquist wrote: > > >Freeway design is not driven by the requirements of the horse. If a horse > > >occasionally wants to gallop down a freeway, we're happy to let it as long > > >as it do