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 A9D42C4332F for ; Tue, 22 Nov 2022 04:33:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0245C6B0071; Mon, 21 Nov 2022 23:33:54 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EEE926B0073; Mon, 21 Nov 2022 23:33:53 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D8F206B0074; Mon, 21 Nov 2022 23:33:53 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id C4C236B0071 for ; Mon, 21 Nov 2022 23:33:53 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 8E9DF140381 for ; Tue, 22 Nov 2022 04:33:53 +0000 (UTC) X-FDA: 80159810346.05.322ED2A Received: from forward502j.mail.yandex.net (forward502j.mail.yandex.net [5.45.198.238]) by imf10.hostedemail.com (Postfix) with ESMTP id 8899BC0004 for ; Tue, 22 Nov 2022 04:33:52 +0000 (UTC) Received: from sas2-1cbd504aaa99.qloud-c.yandex.net (sas2-1cbd504aaa99.qloud-c.yandex.net [IPv6:2a02:6b8:c14:7101:0:640:1cbd:504a]) by forward502j.mail.yandex.net (Yandex) with ESMTP id 1DAB01121303; Tue, 22 Nov 2022 07:33:48 +0300 (MSK) Received: by sas2-1cbd504aaa99.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id IgLlIh8Hh2-XlV4ORZQ; Tue, 22 Nov 2022 07:33:48 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=clicknet.pro; s=mail; t=1669091628; bh=Z1o1cpLxrgOf9vTstujcnNMaU6GoN4odhJaqDCSeS0o=; h=From:In-Reply-To:Cc:Date:References:To:Subject:Message-ID; b=awcs0mFbu10OvK5Wsd3RnLScHrZbjv4sUh1vN9ULoKs4qjY6chlFATG+vujRaHbVC 6Fr8DuXL76XwqGwrOqiQDDqh49FAgxBKQy5zkQpY42TJgSsGdFMakI6aY4KkzR8lso 4RPAKAtlBK3Hqx+AwYoEeeKgAXL/F1VU1jK12aio= Message-ID: <91bf2b07-55ff-96b7-67f3-660398d8a595@clicknet.pro> Date: Tue, 22 Nov 2022 07:33:32 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [bug report] mm: add zblock - new allocator for use via zpool API To: Matthew Wilcox , Dan Carpenter Cc: linux-mm@kvack.org References: Content-Language: en-US From: Ananda Badmaev In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1669091633; a=rsa-sha256; cv=none; b=09YUFJySNFvyNeba+ytsRJzJvjuU6n3JUYgmpkkwI415e3aNZ7DdQ44FktnjxmN6UWrfcM cZ1vbhctBmLAG8doFKQLRA64NsggMDIogHDlaUMS7jvjbp0JT/Ni4yygl5UB7kVkEDQ1E0 Zf43Wisd4BOlVl4UlXOBShRxe4YomXw= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=clicknet.pro header.s=mail header.b=awcs0mFb; dmarc=none; spf=pass (imf10.hostedemail.com: domain of a.badmaev@clicknet.pro designates 5.45.198.238 as permitted sender) smtp.mailfrom=a.badmaev@clicknet.pro ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1669091633; 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=Z1o1cpLxrgOf9vTstujcnNMaU6GoN4odhJaqDCSeS0o=; b=tMgchygKuEs47jXYZnuIgQvaIqZAZFzpGm4g2MkNcqbpd7eRH57GK4EC+eq18zgszobXaX ewdH+wCZCBUFeebBLv4DYORq7Fer5e6jgMw/QRlO7O3Qpt93zUiXNWwuzRjn0kA3QfdDVJ G/6KJErKAwQfwD1jbu/5ZNKQataJvoc= X-Stat-Signature: dg11kqxa9qe1aeh4x7f7tnyg3htbhkor X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 8899BC0004 Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=clicknet.pro header.s=mail header.b=awcs0mFb; dmarc=none; spf=pass (imf10.hostedemail.com: domain of a.badmaev@clicknet.pro designates 5.45.198.238 as permitted sender) smtp.mailfrom=a.badmaev@clicknet.pro X-Rspam-User: X-HE-Tag: 1669091632-232917 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: 22.11.2022 06:29, Matthew Wilcox пишет: > On Fri, Nov 18, 2022 at 03:20:32PM +0300, Dan Carpenter wrote: >> Hello Ananda, >> >> The patch 9097e28c25c8: "mm: add zblock - new allocator for use via >> zpool API" from Nov 4, 2022, leads to the following Smatch static >> checker warning: >> >> mm/zblock.c:341 zblock_alloc() error: buffer overflow 'block_desc' 29 <= 29 (assuming for loop doesn't break) >> mm/zblock.c:165 cache_insert_block() error: uninitialized symbol 'min_index'. >> mm/zblock.c:412 zblock_reclaim_block() warn: always true condition '(block_type >= 0) => (0-u64max >= 0)' >> >> mm/zblock.c >> 297 static int zblock_alloc(struct zblock_pool *pool, size_t size, gfp_t gfp, >> 298 unsigned long *handle) >> 299 { >> 300 unsigned int block_type, slot; >> 301 struct zblock_block *block; >> 302 struct block_list *list; >> 303 >> 304 if (!size) >> 305 return -EINVAL; >> 306 >> 307 if (size > PAGE_SIZE) >> 308 return -ENOSPC; >> 309 >> 310 /* find basic block type with suitable slot size */ >> 311 for (block_type = 0; block_type < ARRAY_SIZE(block_desc); block_type++) { >> 312 if (size <= block_desc[block_type].slot_size) >> 313 break; >> 314 } >> >> "size" is always <= PAGE_SIZE. Is PAGE_SIZE always 4k? If so then this >> code is fine. Smatch is bad at handling arrays. > > PAGE_SIZE is 8kB on SPARC/Alpha. It can be 64kB on PPC and ARM. It can > even be 256kB on one of the weirdo architectures (but, honestly, it's > OK if that breaks; it's not well-tested).. The block_desc table uses fractions of PAGE_SIZE, so with larger PAGE_SIZE, the size of slots will also increase. Should work fine with a page size of 8, 64, 256k.