On Fri, May 19, 2023 at 10:27:48PM +0900, Akira Yokosawa wrote: > On Fri, 19 May 2023 06:28:47 +0000, Hao Lee wrote: > > On Thu, May 18, 2023 at 10:50:51AM +0900, Akira Yokosawa wrote: > >> Hi, > >> > >> On Wed, 17 May 2023 12:01:10 +0000, Hao Lee wrote: > >>> Hi, Paul > >>> > >>> I noticed that QuickQuiz 5.46 is causing confusion due to the fact that > >>> balance_count() and flush_local_count() are both located within the > >>> slowpath and are called sequentially. As a result, it is impossible for > >>> them to compete for the counterandmax thread-local variable. > >> > >> Right. > >> And that's exactly what is mentioned in the answer to the quiz. > >> > >> I guess it confused you because you didn't expect such an easy one, > >> no ? :-) > > > > In fact I'm confused about the question description. > > I believe that this quiz should focus on the concurrency of global > > variables, rather than on the concurrency of the atomic variable > > `counterandmax`, which is currently the main focus of the description. > > Hmm, sorry but I'm afraid I don't get your point ... > > Could you share the question you'd expect to see in place of > Quick Quiz 5.46? Hi, I don't think this question should exist according to my understanding... Let's approach this question from a different perspective. The answer emphasizes that the gblcnt_mutex prevents concurrency problems. Let's assume that neither balance_count() nor flush_local_count() is holding the gblcnt_mutex. Would the counterandmax variable encounter concurrency problems? I don't think so because counterandmax is an atomic variable and is always safe, even without using any locks. > > Thanks, Akira > > > > >> > >> Thanks, Akira > >> > >>> Therefore, > >>> I believe that this quiz may be referring to the global variables > >>> globalcount and globalreserve. > >>> > >>> Thanks, > >>> Hao Lee