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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B32CBC4332F for ; Mon, 13 Nov 2023 08:56:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3E0F66B01A7; Mon, 13 Nov 2023 03:56:12 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 390446B01F3; Mon, 13 Nov 2023 03:56:12 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 257956B01F4; Mon, 13 Nov 2023 03:56:12 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 115B16B01A7 for ; Mon, 13 Nov 2023 03:56:12 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id DBE3AB56B3 for ; Mon, 13 Nov 2023 08:56:11 +0000 (UTC) X-FDA: 81452324142.07.46F9389 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) by imf01.hostedemail.com (Postfix) with ESMTP id EA18740010 for ; Mon, 13 Nov 2023 08:56:09 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=jWuZwc+a; spf=pass (imf01.hostedemail.com: domain of sun.gengeration.sun@gmail.com designates 209.85.210.172 as permitted sender) smtp.mailfrom=sun.gengeration.sun@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699865770; h=from:from:sender: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:dkim-signature; bh=gSJeV+5+moJOEMCHhRY/pbctQuAqVOLSjTdBm1du72U=; b=7lS/Vx9/iUErn7HbOOwAdJecF/pftJkdUfw7qLAX0g5/PWIwkqrMkcSFq0AyTGw1xgdH3Z 9iUsoqkFSMveXxGA5LAAw/4ynVdB7lK9pYJCGyrJ+gk6N9Zfhb1dNogmPwZLpPqOCTl6rg R+qWa8hg/XzeHReGAFbH73GGYzdolTQ= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=jWuZwc+a; spf=pass (imf01.hostedemail.com: domain of sun.gengeration.sun@gmail.com designates 209.85.210.172 as permitted sender) smtp.mailfrom=sun.gengeration.sun@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699865770; a=rsa-sha256; cv=none; b=Ufb04P2zJIoZbtT0cGkgt3LQKBqHDuyFd1aHfB/rRkUWbqfAWPTlpRv4WeBgzlZIzxHt/6 DQFDx2Wswfd3HyHLyBvKwUIOe4TICYE2iLjejuUMFUkfAObjUqipwdZuWlrwccKHQtJIcC BmT6rg8OMCYg/IcLu8UWjunm91q/g4g= Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-6b77ab73c6fso3110904b3a.1 for ; Mon, 13 Nov 2023 00:56:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699865768; x=1700470568; darn=kvack.org; h=to:in-reply-to:cc:references:message-id:date:subject:mime-version :from:content-transfer-encoding:from:to:cc:subject:date:message-id :reply-to; bh=gSJeV+5+moJOEMCHhRY/pbctQuAqVOLSjTdBm1du72U=; b=jWuZwc+aGmqTp3EPfUPUHt6nsZnVUk1sDqsidwXxj6g5hiBv9gcwANVDHqKsd3e0A+ fbdIfCnNuTI5Zsgxh0Ix/0srnHRbx39xzp1AERmWKxZlW8gRC3fvo84xnXaBfrzIMHwU jfYoApNYNTZ5aGZfmV4KNDO8J6roxq77XX70em2j8AoCA1hEEfidGkrjoiClNfdT3DGZ zTeHz97+b2hjYQC2i50ZEPX/PNwaQTawTegQjtB0ZMScgbHasH6JHkQeerrRZEgBz1Gg qt4zbTuNWJQ3iqOMSrnZFTyFJKgQGAVlwGp4WoPiNXbpfv/FZChq4N14XCphLtMSpqy6 NXEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699865768; x=1700470568; h=to:in-reply-to:cc:references:message-id:date:subject:mime-version :from:content-transfer-encoding:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gSJeV+5+moJOEMCHhRY/pbctQuAqVOLSjTdBm1du72U=; b=Bqy7WIncW2HjYaw7QfJDQkO0aElRhurKuVE0+Mp93iV+Iu9eGlvS1Jm/Vl4lY5vUgv OigsJyu5XgnyV3hVHCpa7M77J+H+8Z41nWW2c3tu08gCLKOTRdP0ish45s5C+qkRmkud ijgGbSDao5PTn21z6jtUpoNf1+QBlxIU9PSTYUnJ4m++BwcckpNNVI+Xw77PtHewdcJd LaXOnt0/ptd0NID7uGhepuYOPQUFo+J0k/rZFDZXY1AiYw8WifKjkQuGr5R2s7sm987e Q/3Fx7tgfgubsX2yQ7aq+dYL3Dg7N1JTqocYXeE3uuKZh4pp1TOlPSeawr6VDDxSJG4P DQIw== X-Gm-Message-State: AOJu0Ywup3Z94dhGd5bbck3XkNuvXhUzz5LYoKlVwx928ZvLFVbKu/1q p1DRaCQlePpKhcLzlEXoWs5YAEyJ8bVM+S2j X-Google-Smtp-Source: AGHT+IGG+E55awsAdn5xTDeiSK0f3h2t7+ClKl4VHOs3+Tkqdp4GY2dx4kp/aR7CaCPyhjdfqi3i3w== X-Received: by 2002:aa7:8548:0:b0:68f:b5a3:5ec6 with SMTP id y8-20020aa78548000000b0068fb5a35ec6mr8192843pfn.0.1699865767811; Mon, 13 Nov 2023 00:56:07 -0800 (PST) Received: from smtpclient.apple ([43.245.222.77]) by smtp.gmail.com with ESMTPSA id fm26-20020a056a002f9a00b0068620bee456sm3449285pfb.209.2023.11.13.00.56.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 13 Nov 2023 00:56:07 -0800 (PST) Content-Type: multipart/alternative; boundary=Apple-Mail-7225DA26-EA79-409D-80FB-D682F8070747 Content-Transfer-Encoding: 7bit From: geng sun Mime-Version: 1.0 (1.0) Subject: Re: An variable used before init Date: Mon, 13 Nov 2023 16:55:54 +0800 Message-Id: <38C0C09C-1B96-4090-9A71-25D416561956@gmail.com> References: Cc: linux-mm@kvack.org In-Reply-To: To: Xiongwei Song X-Mailer: iPhone Mail (21A360) X-Rspamd-Queue-Id: EA18740010 X-Rspam-User: X-Stat-Signature: au4og3qkipj77d49sr9d5uub1wy1mpor X-Rspamd-Server: rspam01 X-HE-Tag: 1699865769-931286 X-HE-Meta: U2FsdGVkX19PaNK6P2TofMl1BiwQV+UMkVwcYH7L3Zyh/Q6kTY7QVz9brrHtruGJfu6JAryO1b7mr6Cv+rYSL0W+6iH0JqKN6e/I6/o4QxU45jJGoq3Y+qozCQ4F+G1pvYmPGKrsjJxaovABhx/0jxfkmFgK09KwkrxgZhd9pCxnq9qBgTXXJuRnCM3nFHRC1Wh51pzfGCzoVCR9PpaAOigOsHosqPo1EnJhfOjvMKXENFodp+HC4wyhViBFpmB/5oybUszCTmbR4bnUSZBuI7P04MR6kh7+BDleI+PtM5aIZ2aLyWtP6IZLJ4I2RKZdsZ/H+/DPbxgKwARVnaKui4PiGFpASLkzC5vPty2Nb+/+Mwk24rUp01f3HTAlR9fOs7JJGLfTtB46wx71I21JUbdK9Z8nw+D4pUdvJVHUo0LJp9H8Z1F7ry68d3C16q59uz1GolmvGUf1Q9haNfMoziK3ffACXDj2rvu6U6WjuunoBV+Gl5dgzfhIYHgGqb2uEAiqwPylq3FfO3Rz4jtEE5TYhep2obxiOW8iYeNHtvLpg6mlEGUHhRFs/SiQaT5nV3gwdZmvxEdgfpX+WtO1Y67CyrbUBUmNkjyY0MP/O+ztka2BErueTDoNFZ9lH2Xdtr2JZLh+egrUzANhvhwt91FGHb0HwzPiX/x8HUh8wxbBnOeKdfD37OXlGVg06UyB0iTPx3wOsnOu/F3g48uCd2b3tvQVHgj75zG6+TSN4RaxdKexiYJqSGY+0Mna4J8iXDkD8vE7NJHIXOQCgkbEiVTCE0YAyYPWE1FCfVBx2QomXSUDn3E2fr4L9bwJ9ufCLvZUK74tHx7AkSmAtWnCASrHZ6+3MK7rn9CPtoDjNzzlQrEW0DSMDsDjumKzY4/1Y4esYo/rfERtdK3+USeyut9B0La/JfezNK7cp0mYLjn8Hjl7GXU12XPI2tKaENXtxoIDhIydZ24KU3T1rAI 0ShrQQom C9DKpZZ/05sIEXK8SJr8koYut0ySCjFH55xdgcg9c5LJVdF5OSG+Kp/zQAKOfUoXRI4wL+CPDaCRNCm+M6KjcfEEkxGUsBMCdcAaNW+c7TiuqAmKY6FP9Cxn5CRZddP+b9N9LCy2IUJgf/zngPVSDH6HNZ0VUmuJgdqh6TvAb9Cz3FKBgjmixy1P+91SHaqc9rHP82yjcG7zuJYXarm8aZgtU+jC267pkyaAzetpKoDh3ti+AEf8j0cjhHM+hdsz50PWugZIZTSBpvDvnGa/0yo6V+zXAyr/aTkaZJ+q3y3DAvNsesrA5qKRaSTlyx85/nf46NVXTjrNMxL+LdlnISyPXbg9KUjDzFxprmeYybbjXamBwWI82zYkhhzALBMRTpBY1ca/G4cvbtvDyuqc+/AWRAay3zcDF/ODpGloG6sA9/+MhTJh1cHLgWWqQKgDb/Wwl24mtPqkp1c0tDtfcaKvQs0CIhlmCAJk+LJx4YCdNk5bTaevcSZwCMcNs0VyXHQNpxAmKtCyO32SeONDWpP5Sx/OCBNLvhXcKhrgJ6Gv1YGSofDEzR9HcyJj+y6y8jhXGJEmth/kS/XKoVKNz1+3WzhDrbVtoiRyYNSh97Fxi0TQ= 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: List-Subscribe: List-Unsubscribe: --Apple-Mail-7225DA26-EA79-409D-80FB-D682F8070747 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Thank you for your explanation. Iunderstand. Thank you very much. > On Nov 13, 2023, at 09:36, Xiongwei Song wrote: >=20 > =EF=BB=BFHi, >=20 > You can see the definition of struct slab, the counters uses same space > with inuse, objects and frozen because they are in a union. So when > counters gets a value, the other 3 members also get a value. >=20 > struct slab { > ......snip...... > union { > unsigned long counters; > struct { > unsigned inuse:16; > unsigned objects:15= ; > unsigned frozen:1; > }; > }; > ......snip...... > } >=20 > Regards, > Xiongwei >=20 >> On Sun, Nov 12, 2023 at 5:55=E2=80=AFAM geng sun wrote: >>=20 >> Hi linux-mm >>=20 >> I find one odd variable =E2=80=9Cnew=E2=80=9D in slub, it was used before= init. >> Maybe the value in new was undefined. >> And I can not understand how it work. >> Could you explain this code for me? >> Thanks. >>=20 >> Best regards. >> static void __slab_free(struct kmem_cache *s, struct page *page, >> void *head, void *tail, int cnt, >> unsigned long addr) >>=20 >> { >> void *prior; >> int was_frozen; >> struct page new; >> unsigned long counters; >> struct kmem_cache_node *n =3D NULL; >> unsigned long flags; >> stat(s, FREE_SLOWPATH); >> if (kmem_cache_debug(s) && >> !free_debug_processing(s, page, head, tail, cnt, addr)) >> return; >>=20 >> do { >> if (unlikely(n)) { >> spin_unlock_irqrestore(&n->list_lock, flags); >> n =3D NULL; >> } >> prior =3D page->freelist; >> counters =3D page->counters; >> set_freepointer(s, tail, prior); >> new.counters =3D counters; >> was_frozen =3D new.frozen; >> new.inuse -=3D cnt; >> if ((!new.inuse || !prior) && !was_frozen) { --Apple-Mail-7225DA26-EA79-409D-80FB-D682F8070747 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable

Thank= &n= bsp;you for=  your explanation<= span style=3D"margin: 0px; padding: 0px; -webkit-tap-highlight-color: rgba(0= , 0, 0, 0); caret-color: rgb(30, 31, 36); color: rgb(30, 31, 36); font-famil= y: -apple-system, Arial, Helvetica, sans-serif; font-size: 19px;">. IunderstandThank you very much.

On Nov 13, 2023, at 09:36= , Xiongwei Song <sxwjean@gmail.com> wrote:

<= blockquote type=3D"cite">
=EF=BB=BFHi,

You can see the definition of struct slab, the counters us= es same space
with inuse, objects and frozen because they ar= e in a union. So when
counters gets a value, the other 3 mem= bers also get a value.

struct slab {=
......snip......
     &n= bsp;            =             &nbs= p;        union {
&= nbsp;            = ;            &nb= sp;            &= nbsp;        unsigned long counters;=
         &nbs= p;            &n= bsp;            =             stru= ct {
         =             &nbs= p;            &n= bsp;            =         unsigned inuse:16;            &n= bsp;            =             &nbs= p;            &n= bsp;     unsigned objects:15;
&nbs= p;            &n= bsp;            =             &nbs= p;            &n= bsp;   unsigned frozen:1;
   =             &nbs= p;            &n= bsp;            =       };
   &n= bsp;            =             &nbs= p;          };
<= span>......snip......
}

Re= gards,
Xiongwei

On Sun, Nov= 12, 2023 at 5:55=E2=80=AFAM geng sun <sun.gengeration.sun@gmail.com> w= rote:

Hi linux-mm

I= find one odd variable =E2=80=9Cnew=E2=80=9D in slub, it was used before ini= t.
Maybe the value in= new was undefined.
A= nd I can not understand how it work.
Could you explain this code for me?
<= blockquote type=3D"cite"> Thanks.

B= est regards.
static v= oid __slab_free(struct kmem_cache *s, struct page *page,
void *head, void *tail, int cnt,<= br>
unsigned long addr)

{
void *prior;
= int was_frozen;
struc= t page new;
unsigned l= ong counters;
struct k= mem_cache_node *n =3D NULL;
unsigned long flags;
stat(s, FREE_SLOWPATH);
if (kmem_cache_debug(s) &&
!free_debug_processing(s, page, head, tail, cnt, add= r))
return;

do {
if (unlikely(n)) {
spin_unlock_irqrestore(&n->list_lock, flags);
n =3D NULL;
<= blockquote type=3D"cite">}
prior =3D page->freelist;
counters =3D page->counters;
set_freepointer(s, tail, prior);
new.counters =3D counters;<= br>
was_frozen =3D new.frozen;
new.inuse -=3D cnt;
if ((!new.inuse || !pri= or) && !was_frozen) {
= --Apple-Mail-7225DA26-EA79-409D-80FB-D682F8070747--