From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2B7F9C4338F for ; Wed, 4 Aug 2021 16:00:56 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 59E3C60E97 for ; Wed, 4 Aug 2021 16:00:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 59E3C60E97 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvack.org Received: by kanga.kvack.org (Postfix) id D83426B0073; Wed, 4 Aug 2021 12:00:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D0C516B0074; Wed, 4 Aug 2021 12:00:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BAF738D0001; Wed, 4 Aug 2021 12:00:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0082.hostedemail.com [216.40.44.82]) by kanga.kvack.org (Postfix) with ESMTP id 9DA656B0073 for ; Wed, 4 Aug 2021 12:00:54 -0400 (EDT) Received: from smtpin33.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 3E6791809921B for ; Wed, 4 Aug 2021 16:00:54 +0000 (UTC) X-FDA: 78437861628.33.6AF6975 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf26.hostedemail.com (Postfix) with ESMTP id 6BA9920275C2 for ; Wed, 4 Aug 2021 16:00:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1628092851; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kEsjrzEf989GiFesEbeonJ3m9TGKEwxRikvJxw0JX+4=; b=hHBwPjVnW4zFHjE5ud/FcUb8N3ZC0avvfDnrSDcPlwCdEb5WmoRWXighMsvCY/fhK1/Dbg mBhEbeuZ/5Vc4qvvvQhj0T9ZHBU09zauhgcv0UEne9x7dVu7dS97PIj4wWCSniBuD8OKtY AAyiHDvN75aiItuBQ+Uv0Jpl4W/r6Lc= Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-170-twzmvqUaMb2YNQ8jq15Www-1; Wed, 04 Aug 2021 12:00:50 -0400 X-MC-Unique: twzmvqUaMb2YNQ8jq15Www-1 Received: by mail-qt1-f199.google.com with SMTP id m22-20020a05622a1196b029026549e62339so1252502qtk.1 for ; Wed, 04 Aug 2021 09:00:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=kEsjrzEf989GiFesEbeonJ3m9TGKEwxRikvJxw0JX+4=; b=OQleYuSw79qpRlJhy9zp4d/hYGNUEdEBm9e5xEjU3d4Y+1U7vO0DbG6+gUew7afs6O 3htZXLxSiDcgT03LKl0BKnCFZy8B0BEU4QCOwKUYw12uigKWKUQHt5aQOP+Ooj+sovgV Jno/WSUMQCspHflCvbzcriY8ZlQlsm/iQ6Do4oGnvo9ny4lWPSheOL2wQ0xiDYsmNa03 0I8MFbSbG3Meqtk7uYI67vanngBFikH2Lx9/H2Vi9lfbRdH9e6LeAOXFGOxINQfohNsm WK6pnC3BJW8AnLOOTle4qckqXo4883n8leFDpWmWYsoel/whOZoOqwYmBFltmqewcPIU +zxg== X-Gm-Message-State: AOAM531YYYETJr7g/7p7f/QBAUj7lSkvbjyHHYYuT8iB6a7DwHKfnm0V LdF815s1HGLWwBroMYa/9P7b1tYTmurM34+n+yfYWalWRVuIItQtoHLUzxzOhpQ32NRlvPL4jZx LmNxm8GQNlSg= X-Received: by 2002:a05:620a:3c8:: with SMTP id r8mr115991qkm.19.1628092850005; Wed, 04 Aug 2021 09:00:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx1QX2uMiY0+tjFXi1oQjufonahM1RQ6aSelVwGVf8DR+eHT/HQ7Hgz4p3Zz9FvTypcufD6pQ== X-Received: by 2002:a05:620a:3c8:: with SMTP id r8mr115953qkm.19.1628092849770; Wed, 04 Aug 2021 09:00:49 -0700 (PDT) Received: from llong.remote.csb ([2601:191:8500:76c0::cdbc]) by smtp.gmail.com with ESMTPSA id j4sm1480452qkk.78.2021.08.04.09.00.48 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 04 Aug 2021 09:00:49 -0700 (PDT) From: Waiman Long X-Google-Original-From: Waiman Long Subject: Re: [PATCH] mm/memcg: Disable task obj_stock for PREEMPT_RT To: Thomas Gleixner , Johannes Weiner , Michal Hocko , Vladimir Davydov , Andrew Morton , Vlastimil Babka , Roman Gushchin Cc: linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, linux-mm@kvack.org, Shakeel Butt , Muchun Song , Luis Goncalves , Sebastian Andrzej Siewior , Daniel Bristot de Oliveira , Linus Torvalds References: <20210803175519.22298-1-longman@redhat.com> <87h7g62jxm.ffs@tglx> <8953e099-356e-ee09-a701-f4c7f4cda487@redhat.com> Message-ID: Date: Wed, 4 Aug 2021 12:00:47 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <8953e099-356e-ee09-a701-f4c7f4cda487@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=hHBwPjVn; dmarc=pass (policy=none) header.from=redhat.com; spf=none (imf26.hostedemail.com: domain of llong@redhat.com has no SPF policy when checking 170.10.133.124) smtp.mailfrom=llong@redhat.com X-Stat-Signature: byukj7bs5uqcpmdfs3hags9yy5pu17f4 X-Rspamd-Queue-Id: 6BA9920275C2 X-Rspamd-Server: rspam01 X-HE-Tag: 1628092852-371311 Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 8/3/21 9:40 PM, Waiman Long wrote: > On 8/3/21 7:21 PM, Thomas Gleixner wrote: >> To complete the analysis of drain_local_stock(). AFAICT that function >> can only be called from task context. So what is the purpose of this >> in_task() conditional there? >> >> =C2=A0=C2=A0=C2=A0=C2=A0if (in_task()) >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 drain_obj= _stock(&stock->task_obj); > I haven't done a full analysis to see if it can be called from task=20 > context only. Maybe in_task() check isn't needed, but having it there=20 > provides the safety that it will still work in case it can be called=20 > from interrupt context.=20 After looking at possible call chains that can lead to=20 drain_local_stock(), one call chain comes from the allocation of slab=20 objects which I had previously determined to be callable from interrupt=20 context. So it is prudent to add a in_task() check here. Cheers, Longman