From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751454AbdKSET5 (ORCPT ); Sat, 18 Nov 2017 23:19:57 -0500 Received: from bombadil.infradead.org ([65.50.211.133]:53612 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751312AbdKSETz (ORCPT ); Sat, 18 Nov 2017 23:19:55 -0500 Date: Sat, 18 Nov 2017 20:19:54 -0800 From: Matthew Wilcox To: Shawn Landden Cc: Michal Hocko , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-api@vger.kernel.org Subject: Re: [RFC v2] prctl: prctl(PR_SET_IDLE, PR_IDLE_MODE_KILLME), for stateless idle loops Message-ID: <20171119041954.GA12039@bombadil.infradead.org> References: <20171101053244.5218-1-slandden@gmail.com> <20171103063544.13383-1-slandden@gmail.com> <20171103090915.uuaqo56phdbt6gnf@dhcp22.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.8.3 (2017-05-23) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Nov 17, 2017 at 08:45:03PM -0800, Shawn Landden wrote: > On Fri, Nov 3, 2017 at 2:09 AM, Michal Hocko wrote: > > On Thu 02-11-17 23:35:44, Shawn Landden wrote: > > > 16 bytes per process is kinda spendy, but I want to keep > > > lru behavior, which mem_score_adj does not allow. When a supervisor, > > > like Android's user input is keeping track this can be done in > > user-space. > > > It could be pulled out of task_struct if an cross-indexing additional > > > red-black tree is added to support pid-based lookup. > > > > This is still an abuse and the patch is wrong. We really do have an API > > to use I fail to see why you do not use it. > > > When I looked at wait_queue_head_t it was 20 byes. 24 bytes actually; the compiler will add 4 bytes of padding between the spinlock and the list_head. But there's one for the entire system. Then you add a 40 byte structure (wait_queue_entry) on the stack for each sleeping process. There's no per-process cost. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sat, 18 Nov 2017 20:19:54 -0800 From: Matthew Wilcox To: Shawn Landden Cc: Michal Hocko , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-api@vger.kernel.org Subject: Re: [RFC v2] prctl: prctl(PR_SET_IDLE, PR_IDLE_MODE_KILLME), for stateless idle loops Message-ID: <20171119041954.GA12039@bombadil.infradead.org> References: <20171101053244.5218-1-slandden@gmail.com> <20171103063544.13383-1-slandden@gmail.com> <20171103090915.uuaqo56phdbt6gnf@dhcp22.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: owner-linux-mm@kvack.org List-ID: On Fri, Nov 17, 2017 at 08:45:03PM -0800, Shawn Landden wrote: > On Fri, Nov 3, 2017 at 2:09 AM, Michal Hocko wrote: > > On Thu 02-11-17 23:35:44, Shawn Landden wrote: > > > 16 bytes per process is kinda spendy, but I want to keep > > > lru behavior, which mem_score_adj does not allow. When a supervisor, > > > like Android's user input is keeping track this can be done in > > user-space. > > > It could be pulled out of task_struct if an cross-indexing additional > > > red-black tree is added to support pid-based lookup. > > > > This is still an abuse and the patch is wrong. We really do have an API > > to use I fail to see why you do not use it. > > > When I looked at wait_queue_head_t it was 20 byes. 24 bytes actually; the compiler will add 4 bytes of padding between the spinlock and the list_head. But there's one for the entire system. Then you add a 40 byte structure (wait_queue_entry) on the stack for each sleeping process. There's no per-process cost. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Wilcox Subject: Re: [RFC v2] prctl: prctl(PR_SET_IDLE, PR_IDLE_MODE_KILLME), for stateless idle loops Date: Sat, 18 Nov 2017 20:19:54 -0800 Message-ID: <20171119041954.GA12039@bombadil.infradead.org> References: <20171101053244.5218-1-slandden@gmail.com> <20171103063544.13383-1-slandden@gmail.com> <20171103090915.uuaqo56phdbt6gnf@dhcp22.suse.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-api-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Shawn Landden Cc: Michal Hocko , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-api@vger.kernel.org On Fri, Nov 17, 2017 at 08:45:03PM -0800, Shawn Landden wrote: > On Fri, Nov 3, 2017 at 2:09 AM, Michal Hocko wrote: > > On Thu 02-11-17 23:35:44, Shawn Landden wrote: > > > 16 bytes per process is kinda spendy, but I want to keep > > > lru behavior, which mem_score_adj does not allow. When a supervisor, > > > like Android's user input is keeping track this can be done in > > user-space. > > > It could be pulled out of task_struct if an cross-indexing additional > > > red-black tree is added to support pid-based lookup. > > > > This is still an abuse and the patch is wrong. We really do have an API > > to use I fail to see why you do not use it. > > > When I looked at wait_queue_head_t it was 20 byes. 24 bytes actually; the compiler will add 4 bytes of padding between the spinlock and the list_head. But there's one for the entire system. Then you add a 40 byte structure (wait_queue_entry) on the stack for each sleeping process. There's no per-process cost.