Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756164Ab2F2Q71 (ORCPT ); Fri, 29 Jun 2012 12:59:27 -0400 Received: from mx1.redhat.com ([209.132.183.28]:41089 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932289Ab2F2Q7Y (ORCPT ); Fri, 29 Jun 2012 12:59:24 -0400 Message-ID: <4FEDDE99.2090105@redhat.com> Date: Fri, 29 Jun 2012 12:58:01 -0400 From: Rik van Riel User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120430 Thunderbird/12.0.1 MIME-Version: 1.0 To: Andrea Arcangeli CC: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Hillf Danton , Dan Smith , Linus Torvalds , Andrew Morton , Thomas Gleixner , Ingo Molnar , Paul Turner , Suresh Siddha , Mike Galbraith , "Paul E. McKenney" , Lai Jiangshan , Bharata B Rao , Lee Schermerhorn , Johannes Weiner , Srivatsa Vaddagiri , Christoph Lameter , Alex Shi , Mauricio Faria de Oliveira , Konrad Rzeszutek Wilk , Don Morris , Benjamin Herrenschmidt Subject: Re: [PATCH 09/40] autonuma: introduce kthread_bind_node() References: <1340888180-15355-1-git-send-email-aarcange@redhat.com> <1340888180-15355-10-git-send-email-aarcange@redhat.com> <4FEDCB7A.1060007@redhat.com> <20120629163820.GQ6676@redhat.com> In-Reply-To: <20120629163820.GQ6676@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2418 Lines: 55 On 06/29/2012 12:38 PM, Andrea Arcangeli wrote: > On Fri, Jun 29, 2012 at 11:36:26AM -0400, Rik van Riel wrote: >> On 06/28/2012 08:55 AM, Andrea Arcangeli wrote: >> >>> --- a/include/linux/sched.h >>> +++ b/include/linux/sched.h >>> @@ -1792,7 +1792,7 @@ extern void thread_group_times(struct task_struct *p, cputime_t *ut, cputime_t * >>> #define PF_SWAPWRITE 0x00800000 /* Allowed to write to swap */ >>> #define PF_SPREAD_PAGE 0x01000000 /* Spread page cache over cpuset */ >>> #define PF_SPREAD_SLAB 0x02000000 /* Spread some slab caches over cpuset */ >>> -#define PF_THREAD_BOUND 0x04000000 /* Thread bound to specific cpu */ >>> +#define PF_THREAD_BOUND 0x04000000 /* Thread bound to specific cpus */ >>> #define PF_MCE_EARLY 0x08000000 /* Early kill for mce process policy */ >>> #define PF_MEMPOLICY 0x10000000 /* Non-default NUMA mempolicy */ >>> #define PF_MUTEX_TESTER 0x20000000 /* Thread belongs to the rt mutex tester */ >> >> Changing the semantics of PF_THREAD_BOUND without so much as >> a comment in your changelog or buy-in from the scheduler >> maintainers is a big no-no. >> >> Is there any reason you even need PF_THREAD_BOUND in your >> kernel numa threads? >> >> I do not see much at all in the scheduler code that uses >> PF_THREAD_BOUND and it is not clear at all that your >> numa threads get any benefit from them... >> >> Why do you think you need it? > This flag is only used to prevent userland to mess with the kernel CPU > binds of kernel threads. It is used to avoid the root user to shoot > itself in the foot. > > So far it has been used to prevent changing bindings to a single > CPU. I'm setting it also after making a multiple-cpu bind (all CPUs of > the node, instead of just 1 CPU). Fair enough. Looking at the scheduler code some more, I see that all PF_THREAD_BOUND seems to do is block userspace from changing a thread's CPU bindings. Peter and Ingo, what is the special magic in PF_THREAD_BOUND that should make it only apply to kernel threads that are bound to a single CPU? Allowing it for threads that are bound to a NUMA node could make some sense for eg. kswapd... -- All rights reversed -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/