From owner-freebsd-arch@FreeBSD.ORG Mon Jan 21 16:52:18 2008 Return-Path: Delivered-To: freebsd-arch@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 20C0016A473; Mon, 21 Jan 2008 16:52:18 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from anuket.mj.niksun.com (gwnew.niksun.com [65.115.46.162]) by mx1.freebsd.org (Postfix) with ESMTP id D967413C447; Mon, 21 Jan 2008 16:52:16 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from niksun.com (anuket [10.70.0.5]) by anuket.mj.niksun.com (8.13.6/8.13.6) with ESMTP id m0LGqFkq003969; Mon, 21 Jan 2008 11:52:15 -0500 (EST) (envelope-from jkim@FreeBSD.org) From: Jung-uk Kim To: David Schultz Date: Mon, 21 Jan 2008 11:52:00 -0500 User-Agent: KMail/1.6.2 References: <200801181217.52788.jkim@FreeBSD.org> <20080119121316.GA21917@VARK.MIT.EDU> In-Reply-To: <20080119121316.GA21917@VARK.MIT.EDU> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200801211152.07680.jkim@FreeBSD.org> X-Virus-Scanned: ClamAV 0.92/5507/Mon Jan 21 09:34:07 2008 on anuket.mj.niksun.com X-Virus-Status: Clean Cc: freebsd-current@FreeBSD.org, freebsd-arch@FreeBSD.org Subject: Re: [RFC] SysV SHM on 64-bit platforms X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jan 2008 16:52:18 -0000 On Saturday 19 January 2008 07:13 am, David Schultz wrote: > On Fri, Jan 18, 2008, Jung-uk Kim wrote: > > Because fixing this PR breaks ABI, I had to make compat shims. > > But the question is which branch to break? Since we are very > > close to 7.0-RELEASE, the question became more complicated. A > > lot of people are asking me to fix this PR because it is much > > needed fix for large database installations, so I have to make a > > quick decision. :-( > > It's far too late to fix it for 7.0. RC1 is out, the packages have > already been built, and this could potentially break things. In > particular, you have no way of guaranteeing that an "old" shared > library that uses semctl(2) linked with a "new" binary will work > properly, or vise versa. I know the compat shim is not bullet-proof and I perfectly understand your concerns. That's why I had to give four options and three sets of patches. :-( > For 8-CURRENT, I'd say go ahead and fix it and add the syscall > compat goop. Then I guess backport it to 7-STABLE after a while if > nothing important breaks and nobody has any objections to that > plan. Well, since the policy is 'no seat belt for -CURRENT', I think that is aceptable, too. > It would also be cool if struct ipcperm got fixed at the same time > so we only have to do this once. I think that only entails adding > compat crud to semctl and maybe one or two other syscalls. Those > changes aren't urgent enough to make it worthwhile to backport to > 7.X IMO, though. So, you are in between option 1 and 4, i.e., bigger fix goes to HEAD and partial MFC to RELENG_7, right? > Two questions/comments about the patches: > - Why the #if !defined(__i386__)? There are better ways to test > whether you're compiling for a 32-bit architecture, if that's > what you meant. I reused oshmid_ds, which was only for __i386__ && (COMPAT_FREEBSD4 || COMPAT_43). Basically I didn't want to add struct oh_my_god_we_did_it_again_shmid_ds. ;-) Actually, the arch check is done like this: if (sizeof(size_t) != sizeof(int) && td->td_proc->p_osrel <= WHATEVER) I am hoping the compiler is smart enough to optimize away 'sizeof(size_t) != sizeof(int)'. > - The 8.X version needs to take the p_osrel for the equivalent > change in 7.X into account. I thought it did, didn't it? Jung-uk Kim