Received: by 2002:a05:6358:53a8:b0:117:f937:c515 with SMTP id z40csp5465202rwe; Tue, 18 Apr 2023 07:14:47 -0700 (PDT) X-Google-Smtp-Source: AKy350Ywldq9Z/ju7ORz1pRiQkXIco165LjeiEavm4WjwRYZnCARBt3JaDY4CTq9A5666yb7frvf X-Received: by 2002:a05:6a20:3d1a:b0:f0:a5b8:59f9 with SMTP id y26-20020a056a203d1a00b000f0a5b859f9mr2718234pzi.15.1681827286880; Tue, 18 Apr 2023 07:14:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681827286; cv=none; d=google.com; s=arc-20160816; b=Fj3wHZ+DSdJ+ghuhSolH5bPHH8RfJQfsYs3Jlb1CW429uld60wmZW2IEbUYdH275T3 dkDkbvOUn1R3qNvHVLStFEYtGa45LQqbL5sjS9R423SGyv08LwaDdLeHyFd2cAcCnH2X k6hcPhiCfjy47nkb4c1iHsZTDgluL9rojqW+3f4gdkinZaruz4pAdf3ZDuGM023Z2K8V lviEfRZ7m5xbiaKLEGKmZsgLfUqPfsaBlGOZD2fn0gUEyk6SRiVwS4EX2dhNBiOxOTbh DspuT+0Kl4jsoIzVvmIOw3PWG/rnl/ju6ej49c8gssS4gir+UEyGKzrKPINGrss/pSZP 5FFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:subject:user-agent:mime-version:date:message-id :dkim-signature; bh=axE0K9rAJNbZPTHu/N9msVmec+hFbIqczZ1zdflcDhE=; b=jKac6oQN9TSslJZ4+TVq3vuqcQN/NuzOthVgFaPUwubey1V5uDkY4HoqHbhHC11k3B 5jEpiOAsF/gDATd8Ker3WDavE+mZAcM+tLC2JhTIPLGE+3502y2Pun5ZPXqJeB2G9Dzp QFgI3z01Nc127uwRGH9q8nwo2+G8FCzTyV0sLyfWwFFIG6iLbpk6GZfN9rNZB7LepdX0 W79Me+UewoAmWD9zWeolJ5wyi2vu11yrKHqFd5ru5medsmPUtNyeRoYuotRnCVyVBfXX FOpiYp1ZCS0jMNjAAQg2kw2H+ow2co+JOQzrsXBQ24R6hsF5Glf3z2/s0cXpIXxsM2u/ kS3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@foxmail.com header.s=s201512 header.b=Mpzshv91; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t17-20020a63f351000000b0050fb7c5a656si14072188pgj.190.2023.04.18.07.14.18; Tue, 18 Apr 2023 07:14:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@foxmail.com header.s=s201512 header.b=Mpzshv91; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231713AbjDROMc (ORCPT + 99 others); Tue, 18 Apr 2023 10:12:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50798 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232178AbjDROMa (ORCPT ); Tue, 18 Apr 2023 10:12:30 -0400 X-Greylist: delayed 102 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Tue, 18 Apr 2023 07:12:18 PDT Received: from out203-205-251-82.mail.qq.com (out203-205-251-82.mail.qq.com [203.205.251.82]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 95BD8146C5 for ; Tue, 18 Apr 2023 07:12:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1681827136; bh=axE0K9rAJNbZPTHu/N9msVmec+hFbIqczZ1zdflcDhE=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=Mpzshv91FLzUhE4r1ZjPjrCK1N0UnKbCQf6xL8GHe6pX4Sjc7FSSgDI0OMITxO8cN Eg/Rh2eOIXNevGwm6pdxQPGZpa0XVXooaTHNVSvVqRZj334Jg/w5qS7ZuUD4JGyZR8 StxaXaWrVTrXTeX+1h4BZWz/aFAgeoeUt6VX46bk= Received: from [192.168.31.3] ([106.92.97.36]) by newxmesmtplogicsvrsza10-0.qq.com (NewEsmtp) with SMTP id 30EA7CEC; Tue, 18 Apr 2023 22:12:14 +0800 X-QQ-mid: xmsmtpt1681827134tm6lhrvj3 Message-ID: X-QQ-XMAILINFO: OKkKo7I1HxIeELuN70hYUcmLAIJT70aL9IYz/YbMJwDVzOH8qGwu/oeUScQiyu p+5tJRVphUagZm1aBfSzVOZY9fccZSXGoLNALdHJwHSxX7H2s62wGPsdM51QO4rW0g3K7C4ibbIb gMhUbLpTSwuZ3LZvEqohFuCSBY3XnxJyT0DejX3V2Asv0wD9IsDF9QRWoL4Ntbm5lYomCfbNeHXU gq44BcPJ4JuIZcuEhsbl6+Qjw67K3Ar+QPUdONyMQdhLHqYvMwzWbCz59VlDNOwNPMpn+QgQEbCV CVhWicwX0ApGCCi5mQo6SynTtX5ZOpxXAXk/ox3vg8ZXpXukymmmgzDIJI3dM1EWQtL0ARr7bHoj oXHz8HwyXK6w+pmuHkfuZdfvoJ7/NF6sLbqKza+vQbRoVl2W6vfMUgu5F6pyZxqSIo9eCAwHOpOc cInP1XMdWviUyAp6OejPwCQcicdKJPYmqdCEW/zxt+rsr6XgQ6E1mYJ/5L33ynsOUu/k0NIzVqpN zMXKgh8r+vKO8I8wfn1scRe6fZhTWsjGQ1dH7qMp6An5JSccf6TuWZMssvYqikg7vBZcGR5xplT7 FtNr9Y7TG7bB84/R8+to/rYlM+N8/g9szZ97CiritKPShkeUNoCLmoXVzR7iD5d0pwuRTmoME18f k+ndn8ZJAlF5/KuNIA58UYDagA0k9rjZRO1WOkFrBB32VEMUNYRejZg5pnM+MOnHrNW+PwqkD5Gc 3jOEdrwg9qjwlcHyiSGh94xNSqtVRbygvh+VjLogtgiYtGNc3X06S8MwFLPY74P8PZZcvOIGwkn2 c7OvfbZnBLIuSP3D4G73cvJcQmr8H9Dc95kJdb2oZ09WHWf5OZVkQOFKvP1eZHRclCbh4tWmbNyh 3ycN/Ke2ueb/Vpi5foORzxJmQfafQ4qsLQ76bqQ40I2uNYrG+iZokvb8AW51U+NOO4ElSU5xxExF 89EfCHosupjaWSFtSmpbG0xmCWnJgK2tvI2fQqtzP+Yn3oHU2LlTV0Fi3vlxUQoWSOAQdccUs= X-OQ-MSGID: Date: Tue, 18 Apr 2023 22:12:14 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.9.1 Subject: Re: [PATCH] eventfd: support delayed wakeup for non-semaphore eventfd to reduce cpu utilization To: Hillf Danton Cc: Christoph Hellwig , Fu Wei , linux-kernel@vger.kernel.org References: <20230417000711.1100-1-hdanton@sina.com> From: Wen Yang In-Reply-To: <20230417000711.1100-1-hdanton@sina.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=0.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_MUA_MOZILLA, FREEMAIL_FROM,HELO_DYNAMIC_IPADDR,NICE_REPLY_A,RCVD_IN_DNSWL_NONE, RDNS_DYNAMIC,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 在 2023/4/17 08:07, Hillf Danton 写道: > On 16 Apr 2023 19:31:55 +0800 Wen Yang >> For the NON SEMAPHORE eventfd, if it's counter has a nonzero value, >> then a read(2) returns 8 bytes containing that value, and the counter's >> value is reset to zero. Therefore, in the NON SEMAPHORE scenario, >> N event_writes vs ONE event_read is possible. >> >> However, the current implementation wakes up the read thread immediately >> in eventfd_write so that the cpu utilization increases unnecessarily. >> >> By adding a configurable delay after eventfd_write, these unnecessary >> wakeup operations are avoided, thereby reducing cpu utilization. > If the EPOLLOUT wakeup in eventfd_read() breaks, feel free to specify it > in the commit message after updating the comment below. > /* > * Every time that a write(2) is performed on an eventfd, the > * value of the __u64 being written is added to "count" and a > * wakeup is performed on "wqh". A read(2) will return the "count" > * value to userspace, and will reset "count" to zero. The kernel > * side eventfd_signal() also, adds to the "count" counter and > * issue a wakeup. > */ Thanks We will modify it according to your suggestion and then send v2 later. -- Best wishes, Wen