From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: passt.top; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=D0v8ip63; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by passt.top (Postfix) with ESMTPS id 7D6D75A026F for ; Tue, 07 Oct 2025 15:26:29 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759843588; h=from:from: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:autocrypt:autocrypt; bh=FrfM6qH0ZxaD9kQ48YfEVZ3Zq5+621SPqGOGnSOBCR0=; b=D0v8ip63ui7ma85X6jlP5xDJZ8Mjq2TKl3lpVfyNF0EbaGV4sRTg/Ejnt9870eWXUeTAq5 UJC6kJidIlB7BQNu8ji89e0K5zTZS7m5xQELCyl8VwYGdBZVukVjjBc5bgCSOkJCHB2ngc RMyKT9pbLSd/1OS6iOi2A2avLoEnKn4= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-253-M_OBEEoaOzidTv25ebSFYA-1; Tue, 07 Oct 2025 09:26:26 -0400 X-MC-Unique: M_OBEEoaOzidTv25ebSFYA-1 X-Mimecast-MFC-AGG-ID: M_OBEEoaOzidTv25ebSFYA_1759843585 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-46e473e577eso32809145e9.0 for ; Tue, 07 Oct 2025 06:26:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759843585; x=1760448385; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=FrfM6qH0ZxaD9kQ48YfEVZ3Zq5+621SPqGOGnSOBCR0=; b=s7TEOd/Jgyq2ENCl7qWJ/rqmm1ZJ8D65NbyZz8BS1b5CHNCRdN2fA71DuUdmk7L4vs qfJUNfk8mpCJTPV4PUEHJqfEETaYUZ9Rro17gVJJMB0B2PYaUlUr4s/+Ia0J5kmsIxBy QKnU6h20yGotBjhjU3EzxtUfpN218AuNAB8+dksmXSCanlvwkkP9mgQI3ZfRAxKV3Wmx L6pkDXxGbIJ63on5t3TsLPMPYwgashutBXqqVLtk5msWnHzgLKoh6Fp7FjHY+WjL0cAw r3HwWnOOTUDYBBju5c/TN34/OZSxTMu62XUuIVaZ6eusQvoUh2/67Js194WsRHEv7mtu Spnw== X-Gm-Message-State: AOJu0YwtDG3K8dGsD/6FDmH9hjxGN1xpJxvsokZ2NLEDkxqUWAhPjeKC Hqpt1dOBqx6OlDoFHsflV4c7Ypjagn/MYLNJdGXHurC9zWA68dU6C5ycy/KSRiZkT4bSh6gHT5V SCjSxE56uHOSdSkUb9QSGhjDaRq8TqnDI9y+yop3uqMTiTwBCJaX96WLq3SN6UQ== X-Gm-Gg: ASbGncs+inWKXz/ZtIhB6o/IUnAv+YEZBdLuZcNWtahnsuKbDyA6vAByxtMA9uEU4Qx Dz1ZzqcHtUKTL5j3Ec/XBYEuHisxoeENfwvkhN7cQzOh3j34u5mw3TnHasmy6w1RXPYA88tZ7YE eyz7285vsdZX3aRycJfzbfV/2mgoUMshogq8yI67/qMKN6rr3kx7E+di5p8OKgdKVL+gYnZIEBY +Z8nDLFpMJwHRDDwd1nRcQAuCFvDbtmrlm/be8dsSXLA367emIvAiJEl248w5tDkMRFV+SbUXaO Edvws02MNu18J6Stk6yCMxYfmYCDoyeOlNFZ8AltXkDjV3JUkgQS0wl7PxjBhDcTtFLxdHVKmNQ +EkKjFbFX X-Received: by 2002:a05:600d:41d3:b0:46c:d476:52f3 with SMTP id 5b1f17b1804b1-46e71152676mr105025965e9.26.1759843584656; Tue, 07 Oct 2025 06:26:24 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGD5QVLbgIpb4LAP8DXduxdy2hnP7dRVVne9wX9i8zq+ccfJupiLC2Ik/WlauF/wm0HUWzW7w== X-Received: by 2002:a05:600d:41d3:b0:46c:d476:52f3 with SMTP id 5b1f17b1804b1-46e71152676mr105025785e9.26.1759843584283; Tue, 07 Oct 2025 06:26:24 -0700 (PDT) Received: from ?IPV6:2a01:e0a:e10:ef90:343a:68f:2e91:95c? ([2a01:e0a:e10:ef90:343a:68f:2e91:95c]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-46e723614c9sm202460895e9.14.2025.10.07.06.26.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 07 Oct 2025 06:26:23 -0700 (PDT) Message-ID: <795ada45-d8ec-4ede-9b2e-54b5e1a50267@redhat.com> Date: Tue, 7 Oct 2025 15:26:23 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 3/5] tcp, flow: Replace per-connection in_epoll flag with epollfd in flow_common To: David Gibson References: <20251003152717.2437765-1-lvivier@redhat.com> <20251003152717.2437765-4-lvivier@redhat.com> From: Laurent Vivier Autocrypt: addr=lvivier@redhat.com; keydata= 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 In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: mZrD1DS8N210I2xikrg6ziJNeuqzMwZoai2kzA-E6V0_1759843585 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Message-ID-Hash: V6N3X36GUCXPXGKO5TECR5PDDHTCQVPZ X-Message-ID-Hash: V6N3X36GUCXPXGKO5TECR5PDDHTCQVPZ X-MailFrom: lvivier@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: passt-dev@passt.top X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: On 07/10/2025 08:07, David Gibson wrote: > On Fri, Oct 03, 2025 at 05:27:15PM +0200, Laurent Vivier wrote: >> The in_epoll boolean flag in tcp_tap_conn and tcp_splice_conn only tracked >> whether a connection was registered with epoll, not which epoll instance. >> This limited flexibility for future multi-epoll support. >> >> Replace the boolean with an epollfd field in flow_common that serves dual >> purpose: zero indicates not registered (replacing in_epoll=false), non-zero > > Don't use 0, since that's a valid fd. > >> stores the actual epoll fd (replacing in_epoll=true). > > I am a bit nervous about adding 31-bits to every flow, since I think > we're fairly close to a cacheline threshold. > > I'm not sure we really can add any less to flow_common, though, given > alignment. > > Then again... we probably don't need 8 bites each for TYPE and STATE, > so those could be packed tighter. Then we could use a limited-bits > index into a table of epollfds, rather than a raw fd. Much uglier, > but maybe worth it? > I tried the epollfds table. But it introduces complexity and a new shared data structure that we will need to manage correctly in the case of multithreading. I don't think it's the way to follow... The epollfds will be open at startup (we have already one: c->epollfd) and their number will depend on the number of threads/queues (the maximum number of virtqueues for QEMU is 65536 but the number of queues is generally configured to match the number of vCPU). And we can guess the file descriptor will be allocated in order. So I think we can expect to fit in an 8-bit. In passt I'm setting the maximum number of virtqueues to 64, that will limit also the number of epollfd. Thanks, Laurent