From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 104569 invoked by alias); 11 Apr 2019 20:52:21 -0000 Mailing-List: contact cygwin-developers-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner@cygwin.com Mail-Followup-To: cygwin-developers@cygwin.com Received: (qmail 104559 invoked by uid 89); 11 Apr 2019 20:52:21 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.1 spammy=handed, desktop, Manager X-HELO: m0.truegem.net Received: from m0.truegem.net (HELO m0.truegem.net) (69.55.228.47) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 11 Apr 2019 20:52:18 +0000 Received: from localhost (mark@localhost) by m0.truegem.net (8.12.11/8.12.11) with ESMTP id x3BKqHEq012035 for ; Thu, 11 Apr 2019 13:52:17 -0700 (PDT) (envelope-from mark@maxrnd.com) Date: Thu, 11 Apr 2019 20:52:00 -0000 From: Mark Geisert To: cygwin-developers@cygwin.com Subject: Re: Implement sched_[gs]etaffinity() In-Reply-To: <20190411083745.GO4248@calimero.vinschen.de> Message-ID: References: <20190411082516.GN4248@calimero.vinschen.de> <20190411083745.GO4248@calimero.vinschen.de> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-IsSubscribed: yes X-SW-Source: 2019-04/txt/msg00031.txt.bz2 On Thu, 11 Apr 2019, Corinna Vinschen wrote: > On Apr 11 10:25, Corinna Vinschen wrote: >> Hi Mark, >> >> On Apr 10 21:21, Mark Geisert wrote: >>> I've recently sent a patch to cygwin-patches that implements these >>> Linux-specific functions. I used the following test program to debug and >>> test the implementation. When the program is run, you can watch it migrate >>> from CPU to CPU with Windows Task Manager. >>> >>> I've only tested on 64-bit Windows 7 so far. If the code (in the patch) is >>> adequate I will supply another patch for doc updates, etc. >> >> Your patch is nicely done, but what about machines with more than 64 >> CPUs? Your patch only uses the standard API for up to 64 CPUs, so a >> process can never use more than 64 CPUs or use CPUs from different CPU >> groups. There was also the case of this weird machine Achim Gratz once >> worked on, which had less than 64 CPUs but *still* used multiple CPU >> groups under Windows, for some reason. >> >> Any chance you could update your patch to support this functionality? >> For some info, see MSDN: >> >> https://docs.microsoft.com/en-us/windows/desktop/ProcThread/processor-groups >> >> Also, there's already some code in fhandler_proc.cc, function >> format_proc_cpuinfo to handle CPU groups. You can use the >> wincap.has_processor_groups() method to check if the system >> supports CPU groups. > > Btw., Glibc's cpu_set_t supports up to 1024 CPUs. See > https://sourceware.org/git/?p=glibc.git;a=blob;f=posix/bits/cpu-set.h > This may be ok for the foreseable future, I guess. Hi Corinna, I will look into CPU group support; thanks for the pointers. I also need to fix the assumption I made about which flavor of pid would be handed to the functions.. they will be Cygwin pids but need conversion to Windows pids internally. ..mark