From owner-p4-projects@FreeBSD.ORG Fri Aug 3 08:10:39 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0B9EE16A46C; Fri, 3 Aug 2007 08:10:39 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D3F5816A41A; Fri, 3 Aug 2007 08:10:38 +0000 (UTC) (envelope-from rdivacky@vlk.vlakno.cz) Received: from vlakno.cz (vlk.vlakno.cz [62.168.28.247]) by mx1.freebsd.org (Postfix) with ESMTP id 86E2C13C48A; Fri, 3 Aug 2007 08:10:38 +0000 (UTC) (envelope-from rdivacky@vlk.vlakno.cz) Received: from localhost (localhost [127.0.0.1]) by vlakno.cz (Postfix) with ESMTP id EB0308C0A1A; Fri, 3 Aug 2007 10:10:36 +0200 (CEST) X-Virus-Scanned: amavisd-new at vlakno.cz Received: from vlakno.cz ([127.0.0.1]) by localhost (vlk.vlakno.cz [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XGk6reOhOdHE; Fri, 3 Aug 2007 10:10:33 +0200 (CEST) Received: from vlk.vlakno.cz (localhost [127.0.0.1]) by vlakno.cz (Postfix) with ESMTP id F37A98C0976; Fri, 3 Aug 2007 10:10:32 +0200 (CEST) Received: (from rdivacky@localhost) by vlk.vlakno.cz (8.13.8/8.13.8/Submit) id l738AWFt064798; Fri, 3 Aug 2007 10:10:32 +0200 (CEST) (envelope-from rdivacky) Date: Fri, 3 Aug 2007 10:10:32 +0200 From: Roman Divacky To: Jung-uk Kim Message-ID: <20070803081032.GA64605@freebsd.org> References: <200708021130.l72BUHrY077198@repoman.freebsd.org> <200708021356.58217.jkim@FreeBSD.org> <20070802192936.GA49511@freebsd.org> <200708021714.33543.jkim@FreeBSD.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200708021714.33543.jkim@FreeBSD.org> User-Agent: Mutt/1.4.2.3i Cc: perforce@FreeBSD.org Subject: Re: PERFORCE change 124529 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2007 08:10:39 -0000 > > hm.. I looked at it and in my version the cpumask_t (linux one) is > > defined to be bit array of configurable length. I dont know what is > > the default but I think its quite safe to assume that its 128. > > Yes, it was but not any more. Basically it depends on Linux kernel > configuration option, i.e., maximum number of CPUs. Since the bit 0 > is CPU 0, bit 1 is CPU 1, etc, you have to make sure the last bits > are properly set. If you really had to do i = ~0, you probably > wanted to do casting first, e.g., i = ~(cpumask_t)0 to make sure. Of > course my version doesn't have to worry about it. ;-) cpumaskt_t is just an unsigned int so ~0 should be fine. have you looked at my latest revision? the native linux syscall returns the size of the cpumask_t. ie. the userland knows what is the maximum that kernel allows. in FreeBSD it doesnt make any sense to emulate linux size because if fbsd doesnt support that many CPUs we cannot emulate it. So using fbsd-sized cpumask_t and telling userland about it is ok. agree? > > but still.. the prototype is: > > > > asmlinkage long sys_sched_getaffinity(pid_t pid, unsigned int len, > > unsigned long __user > > *user_mask_ptr) > > > > and the len is not used anywhere in the code to dynamically size > > it. I wonder how to deal with that. > > The prototype I gave you was from manual page, not the kernel source: > > http://www.linuxhowtos.org/manpages/2/sched_getaffinity.htm yeah.. but this is glibc, I'd prefer to stick with kernel land interface nomenclature thnx for the review!