All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kyle McMartin <kyle@mcmartin.ca>
To: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Carlos O'Donell <carlos@systemhalted.org>,
	dann frazier <dannf@dannf.org>,
	Debian HPPA Port List <debian-hppa@lists.debian.org>,
	linux-parisc <linux-parisc@vger.kernel.org>
Subject: Re: NTPL transition
Date: Fri, 5 Sep 2008 10:20:14 -0400	[thread overview]
Message-ID: <20080905142014.GA27309@phobos.i.cabal.ca> (raw)
In-Reply-To: <1220623626.3331.5.camel@localhost.localdomain>

[Disclaimer: Grain of salt and all that other nonsense, I am pretty
 ignorant about why this is so difficult to handle.]

On Fri, Sep 05, 2008 at 09:07:06AM -0500, James Bottomley wrote:
> > No, due to library-to-library dependencies you have the same problem.
> > You would either have to rebuild *all* the libraries or continue
> > splitting each library into two packages lib and lib-nptl.
> 
> We are going to have to rebuild all the libraries, that's not an option
> because of the ABI change.
> 
> The problem is not to avoid this, but to find a way of doing an online
> upgrade.  The real problem we have to avoid is breaking system tools
> that are required to perform the upgrade in the intermediate steps.  I
> don't rule out that will require us to pull this trick with some
> libraries in addition to libc, but I don't think it will be all of them.
> Just doing libc will probably fix the majority of the issues, though.
> 

I'm probably missing something huge here, but why can't we just put a
sentinel value into the locks, make them equal sized, and use it as a
lock versioning field?

Since our locks are 16-bytes wide traditionally, that leaves us a
bunch of places we could cram it.

There's 3 cases I can think of:
	1 - uninitialized static lock:
		unlocked everywhere else and parisc-nptl (0), locked
		on parisc-lt.

	2 - initialized lock:
		unlocked everywhere else and parisc-*, we end up with
		4 32-bit values each containing a '1' on -lt. presumably
		just 0 on -nptl.

	3 - uninitialized dynamic lock:
		broken everywhere, not really a particular problem.

If we just crammed a "new lock" value (say, 0xdeadbeef or something.)
into the next word of the lock mod 4[1], and assumed any lock without that
sentinel was a linuxthreads lock... 

I mean, aside from wasting 12-bytes of lock that will never be touched
in the -nptl case, it seems like the easiest course...

Since the -lt locks will LDCW the cacheline, it would never be valid to
have an -lt lock with the sentinel set.

Just a thought, but perhaps I am oversimplifying the issue.
	Kyle

1. I mean, if the lock entry is lock[0], we use lock[1], if lock[3], we
	use lock[0].

  reply	other threads:[~2008-09-05 14:20 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20080904114551.GA18877@tilt.dandreoli.com>
2008-09-04 14:13 ` NTPL transition Carlos O'Donell
2008-09-04 15:23   ` dann frazier
2008-09-04 15:31     ` Carlos O'Donell
2008-09-04 16:04       ` dann frazier
2008-09-04 17:29         ` Carlos O'Donell
2008-09-04 17:49           ` dann frazier
2008-09-04 17:52         ` James Bottomley
2008-09-04 23:26           ` Domenico Andreoli
2008-09-05 12:17           ` Carlos O'Donell
2008-09-05 14:07             ` James Bottomley
2008-09-05 14:20               ` Kyle McMartin [this message]
2008-09-05 14:58                 ` Carlos O'Donell
2008-09-04 23:22         ` Domenico Andreoli
2008-09-06  8:24 Petr Salinger
2008-09-06 15:31 ` Carlos O'Donell
2008-09-06 20:16   ` Petr Salinger
2008-09-06 21:36     ` Carlos O'Donell
2008-10-24  5:45 ` Carlos O'Donell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080905142014.GA27309@phobos.i.cabal.ca \
    --to=kyle@mcmartin.ca \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=carlos@systemhalted.org \
    --cc=dannf@dannf.org \
    --cc=debian-hppa@lists.debian.org \
    --cc=linux-parisc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.