From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (mail.openvz.org [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id E50998017D for ; Tue, 27 Oct 2026 20:53:12 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69RKq1ZU001334; Tue, 27 Oct 2026 23:52:03 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69RKq1ZU001334 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="bHgOOOKD" Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69RKpuD7001258 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Tue, 27 Oct 2026 23:51:56 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69RKpuD7001258 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-48e29c25101so134525f8f.3 for ; Tue, 27 Oct 2026 13:51:56 -0700 (PDT) X-Forwarded-Encrypted: i=2; AKwUvBy0+PPi0rVrKE9tRzSOuBavMNkRiJuKKla1z7evUcMCOAI9LhnE7ZrJA4qcnoBIJulOLCME3g==@openvz.org X-Gm-Message-State: AFq9FYL/YMgA8ELfcKj4wE7zS+p/xw1wzNooAaapE2CJ2mLqrgXjgkZf MyNOHkdawXL3XTxxFkOH/j1O0xP5BELw4AQF9agFsjDmRSYN7RVG1E9DAEPjGVEQJW5yoVMbsD7 qUjK3gTtBADcAFtjI2rFUSWhAJy+vf9ZMwcrmmbLdoLp40uIXP+NvbA== X-Gm-Gg: AYBFou2G/+5KCG3fpYmugWImy3WVGlGcQA/JGXsbwN7k/fq+WgWwnsAUjHvYvLM5xiF zmVUVFYvgnWyx1L47pUeeQFZPunS5GgCyWFdBJSTR963kd6EU0HuVV9lkXdJxw2AI7FT5u1j+c5 H0bVV9VHqm7/7shybnoAfh7Oha0pNucbY8LRlFA29dSB0XxpLaq+VaNRe6/e6x6HS19NTJOohQd 1AjrVPkr5cYhCDkmmOSDKCAdUq3M9n+VNJV2itbiJDKqFPZ5fwb/00wnNIe1WjLBW19svSQOiql awfAu1siDokYFvrN2nmYMHXtiiM2V31bz09UsIQYViBUhaSl3EAqwnDUQ8N2eEZp2foS4OZ2596 8tuTW6wJihfOJGGQr55Np/iapbp+EHg== X-Received: by 2002:adf:f712:0:b0:48e:4835:de5f with SMTP id ffacd0b85a97d-48e5d5d9075mr931802f8f.47.1793134315937; Tue, 27 Oct 2026 13:51:55 -0700 (PDT) X-Received: by 2002:adf:f712:0:b0:48e:4835:de5f with SMTP id ffacd0b85a97d-48e5d5d9075mr931783f8f.47.1793134315417; Tue, 27 Oct 2026 13:51:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1793134315; cv=none; d=google.com; s=arc-20260327; b=RUrwjjueNs5P5XE3z4kd4W2EVpPMiEWHt+27jY4VmrLiaxMD4pEneOFKzrtC8EyvFo Xd5Z0hmWbWMG1ZVYCgMZkiUvy3eIN7AoixQg/FDHqBowm4h1iU8oliiqQBMV6EHSxbOH jKf7+p2Aalj659YEeTwrNDpQlry/r9LWZR2EfxYYRUKuHnZIZaL5jqkAImajxaGVXo1B 18ZcxDXYYncdmyq+aOH/YJEZNHPhy5KD+8APl6oQqC2jUGW9mm2tBikB3dDx+sgINPBS 3pUIN4JF/2OgMISs9ucUuj07NOBgZGfeSBH6mISC+4B0RNzecO0J5XqTSdLsEBOrFjne d92Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:dkim-signature; bh=Y/+kNLomCDbsd1zpof+TN4eZKsLr7znXxU94nNrEuzQ=; fh=5hQRK+XZF8m8FADH0g5yAiDkSoTAVGTSxnnvVVATGZQ=; b=LEB5bchswIMwLF/7iW82KuyXHmjkJkVXAgHZfmoNJhFnkdH5sOA1p5nbNsQWOFKN6W ur8XdVHrR+gSE8z/2towoIRrSFbwacflI7OkdaIfa9n714lHss3YHzatiIeHTrI76ZrC FqXHV6VbvO2sKybDB2U/hHoRYnzav0+fF7SfJOljiSv5e6ZSJI67xW3KgPlPJ6UJnTDi 1nVgqyToEwIxzCdZ2ch7Y1CfBwS9HI8kdWjQHka7vv1Pt7+s6N22kcM1H2zLbc6S8avj n6tjpr60vezUUFvSvg5g+REBRnX0GkJOEYE3Qyf/h6RkY8wh6Rft+EJqrkKmWk7+mJ8e nhjg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=bHgOOOKD; spf=pass (google.com: domain of vladimir.riabchun@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=vladimir.riabchun@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from relay.virtuozzo.com (relay.virtuozzo.com. [130.117.225.111]) by mx.google.com with ESMTPS id ffacd0b85a97d-48e3ed272b7si23133083f8f.453.2026.10.27.13.51.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Oct 2026 13:51:55 -0700 (PDT) Received-SPF: pass (google.com: domain of vladimir.riabchun@virtuozzo.com designates 130.117.225.111 as permitted sender) client-ip=130.117.225.111; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=bHgOOOKD; spf=pass (google.com: domain of vladimir.riabchun@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=vladimir.riabchun@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=Message-Id:Content-Type:MIME-Version:Subject:Date :From; bh=Y/+kNLomCDbsd1zpof+TN4eZKsLr7znXxU94nNrEuzQ=; b=bHgOOOKDz60PD8u7kLN /gxmHhzkWDnxizOkRXbZQJ2YZIeJyU6D5EUtoe6jG4nXuW9SKIQkjCx7jNI1qNg/fTVIs9kI0LBP3 0jekmu+UEen55zr0nSZ3ntkhrIOLDzz/Sp2QGpTxsRdgdAkyPf7g6LyUGJjDFLKmJCyvfB9c3ZpPd +Ehst72X5W9LFkthdev83WinH4dDON5hMyfm8RcnljEzTIY4IX25xhsR4rhgQDNZFBK3ZhmXlZUIW 73Slce85ojTa28o33BfLcZos2Z3hXv4ftU+H3K2e+swkcRslZ20iaqN2mYDwkKbta3uxMkG96bVOW uFdAi8i7oSZ3jmQ==; Received: from ch-demo-asa.virtuozzo.com ([130.117.225.8] helo=192.168.1.87) by relay.virtuozzo.com with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1xLo5R-004tG8-36; Tue, 27 Oct 2026 21:51:44 +0100 From: Vladimir Riabchun Date: Tue, 27 Oct 2026 21:51:10 +0100 MIME-Version: 1.0 Message-Id: <20261027-ct-invalid-nrpoc-v1-1-48727c3afe16@virtuozzo.com> References: <20261027-ct-invalid-nrpoc-v1-0-48727c3afe16@virtuozzo.com> In-Reply-To: <20261027-ct-invalid-nrpoc-v1-0-48727c3afe16@virtuozzo.com> To: ptikhomirov@virtuozzo.com, Konstantin Khorenko X-Mailer: b4 0.16.0 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 1/2] sched: Fix sched_getaffinity syscall X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org We observed incorrect cpu numbers inside containers: [root@localhost ~]# nproc 64 even when there were much less physical/virtual CPUs. The root cause is incorrect bitmap_fill usage - it sets whole integers only, without handling bit tails, so the actual number of set bits is 64 = bits in ULONG. Anyway, this approach is incorrect - it doesn't respect container cpuset. Fix sched_getaffinity syscall by reusing p->cpus_mask, and bounding it with num_online_vcpus(). https://virtuozzo.atlassian.net/browse/VSTOR-141682 Signed-off-by: Vladimir Riabchun --- kernel/sched/syscalls.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/kernel/sched/syscalls.c b/kernel/sched/syscalls.c index 6d921043e9e7..92051bace212 100644 --- a/kernel/sched/syscalls.c +++ b/kernel/sched/syscalls.c @@ -1305,6 +1305,7 @@ SYSCALL_DEFINE3(sched_setaffinity, pid_t, pid, unsigned int, len, long sched_getaffinity(pid_t pid, struct cpumask *mask) { struct task_struct *p; + unsigned int online_vcpus = num_online_vcpus(); int retval; guard(rcu)(); @@ -1316,14 +1317,14 @@ long sched_getaffinity(pid_t pid, struct cpumask *mask) if (retval) return retval; - if (!ve_is_super(get_exec_env())) { - cpumask_clear(mask); - bitmap_fill(cpumask_bits(mask), num_online_vcpus()); - return 0; + scoped_guard (raw_spinlock_irqsave, &p->pi_lock) { + cpumask_and(mask, &p->cpus_mask, cpu_active_mask); } - guard(raw_spinlock_irqsave)(&p->pi_lock); - cpumask_and(mask, &p->cpus_mask, cpu_active_mask); + if (!ve_is_super(get_exec_env()) && + !WARN_ON_ONCE(online_vcpus > nr_cpumask_bits)) + bitmap_clear(cpumask_bits(mask), online_vcpus, + nr_cpumask_bits - online_vcpus); return 0; } -- 2.52.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel