Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp2944206imm; Thu, 24 May 2018 19:36:07 -0700 (PDT) X-Google-Smtp-Source: AB8JxZruZA8FaT3UY9H1FayZYGpmd0FoIHRIAWR4ZUBu1fUbukSPpS69aZ6be3fAcm1HePDsju4i X-Received: by 2002:a17:902:7149:: with SMTP id u9-v6mr594237plm.356.1527215767839; Thu, 24 May 2018 19:36:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527215767; cv=none; d=google.com; s=arc-20160816; b=ySNjJLWQwZSg3zRPUJbx0ILOoH9/2N48hwXn4pj301yHniVPOmr6xs8q9+4lb3AjqQ jPYUN7l5/e+5M4FIqQ7IuB6Z+JppW3hpkrFWFNSkcsApHf5qwzHcgZqxWmIXHAC9kk65 e7c5tVY46EjP3XCtd9ILO1/ghLSTbxjS37omIqWYDM+HPJu0iJ/ApeJHYONaB80FI3Cx nWmRTO5+A8B2a52LcITEBGgSyjxSNkSP8CsviONZBetA1lw/3rFTMoH1dju1jgAV7CKV dOt61iKD9iZcSMQaNvCL7vjIfe7rqZMIuE3Dw4/13BX4gCBCIV1T5JOxqETO+O8svHS3 jNoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature :arc-authentication-results; bh=59K3Nh+2RD+VtoYsQTmXK0B/hSo1aoBaBVHnLmn+AuA=; b=o6Wm+2eg8Oi1EHj8YDnl829051bGyZM7FeFAI5vVBEgQ6UyE0bmpmIXMRVT2pZrYGK 96FO3SIpD4oK4QPP94nqx/+yYTCKyvzJyjuTnB7VZY8hcSjnc+tLQalU7gda/6+kInYW dgC9bK41coE6JS3LGwIS0bpYHqxPyOEXODZZxm5mVRIKQm2R6OA0EqEKR8A1Ajhdu8SS 99AsJKZM/li+OsahuzGb7/kclfEz8hlaJjJ3ojeR+7Qekxh1ml3IUe77VqlvQFIljJBj q5F0rM1SkafxcGtFnF7A5NQLIFRzdEmOxcvNC6tm/LxqJ41SbDTbemYnINTWz2ExMpjF rPMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=google header.b=emGzJkbL; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g2-v6si1389236pgq.161.2018.05.24.19.35.53; Thu, 24 May 2018 19:36:07 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=google header.b=emGzJkbL; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1032134AbeEXRxm (ORCPT + 99 others); Thu, 24 May 2018 13:53:42 -0400 Received: from mail-io0-f181.google.com ([209.85.223.181]:36154 "EHLO mail-io0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030467AbeEXRxi (ORCPT ); Thu, 24 May 2018 13:53:38 -0400 Received: by mail-io0-f181.google.com with SMTP id d73-v6so3334608iog.3; Thu, 24 May 2018 10:53:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=59K3Nh+2RD+VtoYsQTmXK0B/hSo1aoBaBVHnLmn+AuA=; b=emGzJkbLSQ5xYowtPWedAfwDqd6L9ppkYeI+SCIOeEANniYQlOJQCt97+NsDJQ+Dox QzuucTCQ7+DHxQWxTzM7KM3EjHOTNBCu/9JoGW05zY4LhMdcGmqkyF201OI29iV3oNhF IyMPaC9QT6rOZMDaGkQpVaglsOL1C27qP+U2E= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=59K3Nh+2RD+VtoYsQTmXK0B/hSo1aoBaBVHnLmn+AuA=; b=at0PGoPPiSgj5isXom4J55WLzGe14llahjm6JPPCHpjaL3t1//SkBnYprqj3xolaRT ko0OR0IzlekXruTY5522qcOhQN81x4ZhOfttnrG7cL9agvbhZrAvjHodOmzfo+r1MKOx KvYaN9TKyNnIf4x6I3ihFDy4cfJ4GjPPdCx5Wnf0tt6b2QxgaLIqZc+ZERXDEMz7CgW3 +FbFmFwh3+PT9MNl4JRj7eXvwcRkwBXbaQOevx3kImpM73XuDXCkH15wZRZoUWb292s8 uqB5FREK4wztBc6m4qxGaNzgsn7iMfHZFnoyrgwCEzD0uWcF5y82dvOMcT6N/oHfyGyf pMbQ== X-Gm-Message-State: ALKqPwcKEqBhwDaRi5e3JxtxL7Z2pO8Fz0+BsbdddXgsKgWbu9h4u5X+ DFhWCFrHAcWpnqATvxMo8W9j7JYIVm0Omxtk4rQ= X-Received: by 2002:a6b:f914:: with SMTP id j20-v6mr8084349iog.238.1527184417326; Thu, 24 May 2018 10:53:37 -0700 (PDT) MIME-Version: 1.0 References: <20180523172500.anfvmjtumww65ief@linux-n805> <20180524170700.wblnybinjzx5rwky@linux-n805> In-Reply-To: <20180524170700.wblnybinjzx5rwky@linux-n805> From: Linus Torvalds Date: Thu, 24 May 2018 10:53:26 -0700 Message-ID: Subject: Re: semantics of rhashtable and sysvipc To: Davidlohr Bueso Cc: Thomas Graf , Herbert Xu , Andrew Morton , Manfred Spraul , guillaume.knispel@supersonicimagine.com, Linux API , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, May 24, 2018 at 10:23 AM Davidlohr Bueso wrote: > tbl = bucket_table_alloc(ht, size, GFP_KERNEL); > - if (tbl == NULL) > - return -ENOMEM; > + if (unlikely(tbl == NULL)) { > + size = min(size, HASH_DEFAULT_SIZE) / 2; > + > + tbl = bucket_table_alloc(ht, size, GFP_KERNEL); > + if (tbl == NULL) > + tbl = bucket_table_alloc_retry(ht, size, GFP_KERNEL); > + } This doesn't seem to be taking 'param->min_size' into account. I'm not sure that matters, but right now, if you have nelem_hint set and a min_size, the min_size is honored (if you have just min_size it's already ignored because the rhashtable always starts with HASH_DEFAULT_SIZE). So I could imagine that somebody uses it to guarantee something. The docs say that "min_size" is the minimum size for *shrinking* not for initializing, so I guess it's debatable. Also, wouldn't it make sense to make this all be a while loop? Or are you just depending on the knowledge that HASH_DEFAULT_SIZE / 2 is already guaranteed to be so small that there's no point? A comment to that effect would be good, perhaps. Linus