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 E3E88C4332F for ; Mon, 13 Nov 2023 01:36:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6DDCF6B01AB; Sun, 12 Nov 2023 20:36:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 68DD06B01B1; Sun, 12 Nov 2023 20:36:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 555E76B01B3; Sun, 12 Nov 2023 20:36:26 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 455E16B01AB for ; Sun, 12 Nov 2023 20:36:26 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 13C861A03B8 for ; Mon, 13 Nov 2023 01:36:26 +0000 (UTC) X-FDA: 81451215972.15.FAF6220 Received: from mail-oa1-f49.google.com (mail-oa1-f49.google.com [209.85.160.49]) by imf30.hostedemail.com (Postfix) with ESMTP id 5AB6B80011 for ; Mon, 13 Nov 2023 01:36:24 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="CgYE/EjI"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of sxwjean@gmail.com designates 209.85.160.49 as permitted sender) smtp.mailfrom=sxwjean@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699839384; 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=rcamn0gmIuSH/2pLsOjVKB7tySn3QmKOTL208Df/rlQ=; b=Uc5i16L1wVoXp/cJLZoP3fTRyEL3QOU7Nyh6TWw8sXlZKfOmdycTUOJs0/QVE3nknpK5ei 3Dmvf7H4EUfQvBErz5VYccs+KlPnJ2GsPmQO/kgJUcOqSc0tsCk2PhTVb53TrlNqv6MyIp WpRB899iKRCsVuNT9efj7hUntEhKtos= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="CgYE/EjI"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of sxwjean@gmail.com designates 209.85.160.49 as permitted sender) smtp.mailfrom=sxwjean@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699839384; a=rsa-sha256; cv=none; b=sxJ+ABASvM5asqxcmFDkFZHPshoq68NBLS8uIyHLGZlV92UdeTtDYkJBdFllisH2PVQWv5 MMi4lAnFDQA+INoLZisD261JOHHPZmLzD2xGtlJ6Ag7jg5tancl6Ns5oFEHjD3m2Xp2DOm LWeTmVZccyeUJgWwH2qjS0xhKQyJam4= Received: by mail-oa1-f49.google.com with SMTP id 586e51a60fabf-1f0f94943d9so1872763fac.2 for ; Sun, 12 Nov 2023 17:36:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699839383; x=1700444183; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=rcamn0gmIuSH/2pLsOjVKB7tySn3QmKOTL208Df/rlQ=; b=CgYE/EjIOeIOeQAmVUJPqTTywalu23SIPUs/0Y5yE6p0Wsz2wsvg9GtoL2fSd7G+45 CGpxMOAz9AdmroJb/XItT4Tu+hpp0BIYQHAlIl+6w7EvKK2HW0gP9eTX+Ye1FPs41hoW 9jmwCY9qOAkezoCDqzUu6m3Pt7QC1kTTHcH/QbatzgKe57WZO2ZrXY0JSmIIs69nrz0n hjhfsfwu9B1Hrnxqwzjkb7czM8Z1vUKn7RvIPJSAlNAlGeR3L/UlrmP/qD1G7d/QgaYt GK5r4cBiK9t4pQ2dW6GuRCMaJOCJnBMZnuec+k/gFaoeKPqwZHnXrrXSQ8Y5OK2gRu+y 4iXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699839383; x=1700444183; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rcamn0gmIuSH/2pLsOjVKB7tySn3QmKOTL208Df/rlQ=; b=HvbaNq7/3TMsGJ4JPSuoc2/tRYPCfV9zs39/AsqsdqqSrOz8KX6RLdbM38PYn9K+tV zyxGlrts2JAjl3DPXfHnblTyzOY+5WullVHwhJ0IzodI6TNRfFnYrma/ko0k+wxpyAss tnGhnVajyZVOSVl6uF9rcH2mnQM6RdGxPfLXjmWUPAe9102FwgxIf8GteWldAE3HKBl8 Xk5SDU9mwSFMUoV1mvEqGK3P4wLgf4BaA9hot1RikDo4C39JYRcVGgLymKirL07juuB0 P32XF+Ad6vonDVoKYBBaK97lUZqbc8MG8407qRNe1J4WTbOZz9Bh+FlPaPYfiqWApy0E qCmg== X-Gm-Message-State: AOJu0YwUJ8A1Sp3xJ/Y3CbhP+1ZGIhVddQ0lNfzvX09UEg5/6q3x66+F htcYICi2yzCIs91R3M9mFcRzEXqy+wac8U2PdsM= X-Google-Smtp-Source: AGHT+IFefwmCfEJi9ZcqrPfjAzqdq/lTHW9w/74XLUwAeWH2ZBx/nI6jY6/TYD4W8vK/3mofinNkf1zn8ZsuyhQ+mBM= X-Received: by 2002:a05:6871:80c6:b0:1ef:bae0:4bb8 with SMTP id sm6-20020a05687180c600b001efbae04bb8mr4671819oab.29.1699839383457; Sun, 12 Nov 2023 17:36:23 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Xiongwei Song Date: Mon, 13 Nov 2023 09:35:56 +0800 Message-ID: Subject: Re: An variable used before init To: geng sun Cc: linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 5AB6B80011 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: 6n6r9sgtj1cyeyx1358trzu5fxonb3uz X-HE-Tag: 1699839384-820605 X-HE-Meta: U2FsdGVkX18jRmTJTcfXlecZEQHcPtATCOZCmcpc6L4oh3/HUEiTVSVYaM4jmIkdz1nJ0xxeENFUFQOHTireny4T6gPSP3qycW1QfNsdUMI6I/9bsle6prFrn9bJiB7zj+Li77n8JHKoBulKFkz0LCdyteSQTN+U1xz5mOmItXDGyV9AaKGnke/+CB2BV/g/ZK/ocTyYFODLzuzW7F1UwtW7zj4NYdcnlOfb3k2CgAg4XXGzjSkfkWnfpTXYNl3lCRjBuW+S9OJpA/M5KBwqdTRLohocr7pWvR8L3EBvJHf+FogPIPg3svdIyCA+B+npIhVb4KBWhCZQgOUBD9dABDSZdjnCdRP8v03sl4wlyrsRzH7INu1adeL3rRDN+tk9Xo6I6hTB+GpV3GxMYKi3+vZEd5FgT4Mc3iQhWYb755y0pzwZO5BY3yVi5Ys3A7byBywh2oik569ZW+4B0vUGHpZ11NC+25aeenUOhwavBcBrYlJqTRiHldobrgwq6Fw4k6uelrVz5cE7MaYa9NTobZXQSOkE6xyk49+Ebfdtxzg7csskz559C2/HP2AbvsB8HmxvWKC0AVgjZ34mq52yqc26K/dkbRFBIAU8lSzifWBVhV1jyrLrfxcO33QlpiDZm4D2ZGcXgDY7+pzUKYiu1TylxxIazkD7KphmvfAjRna8q1ksiOc8hBDKaOpwNxdHKrRD4jDx+KQeCn4I3ZxmJV5jfTdGZ7x7DYm5iPhDxXbrAMKxQpd8rPePISIj4Zr2CjaTs2c15IokvTr/dyncvYcWY85EH0L2/mwFwmKfpaIckHuzTGdkSp7XHM8o/9kqQMZ9xqL9b1XYN6gFwtxHplF3Wuq94IBa18BG5P0wlfNyuTX3ykdtqIQLXy9KZzh5NBJIFiw8s8Y9pLoXZqF74IJmthI1D+vn/GPO9L0uY5YEi+EmfyFRb0x/gwP92nCYy85YfErx53nK4msWjfJ RVqbvniM igGsaZac8ZiFEJDVbbFTNvhhL2vhQI4gSStfeqXoL3VD5JrP683LfyasMdhqQuNE06klauMJfwlLFdRQ7gMEDBrz0CodfDmAEE+nsx8M5Z9nz1+acNUUbJa8JMzMbH3D7QrHY0E5OM+OA4tGc4tnLTNgCsnCgr8ktavsZc+zCD8ztEl92GguQI2EGtmwYAGBVjsqJj6UlAjxAC3bTpBO9RlJOiw23ddnPOKZa8zOYkahIgwoKIGsRwFuIckjGbTegDJZwIYfFNHGOHUMnEzzmE18V1Bkv3+nQ7d/xXHI+S75ltevVVgXfOjyUaDxw7wMX3mCFPV7+ZETbqZrzTv3VwWci7x4mzuOBo1lb6iYHnSPXAlDkHEvM4qCCwSdvE7Hi1G5ElMouZwV2TE6mRHUf0jt8cA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.002991, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi, 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. struct slab { ......snip...... union { unsigned long counters; struct { unsigned inuse:16; unsigned objects:15= ; unsigned frozen:1; }; }; ......snip...... } Regards, Xiongwei On Sun, Nov 12, 2023 at 5:55=E2=80=AFAM geng sun wrote: > > Hi linux-mm > > 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. > > Best regards. > static void __slab_free(struct kmem_cache *s, struct page *page, > void *head, void *tail, int cnt, > unsigned long addr) > > { > 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; > > 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) {