[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v9 02/15] xen: introduce generic non-atomic test_*bit()
On 16.05.2024 12:34, Oleksii K. wrote: > On Thu, 2024-05-16 at 09:04 +0200, Jan Beulich wrote: >> (Later) Wait, maybe I've finally figured it: You use >> arch__test_and_*() >> because those underlie __test_and_*(), but arch_test_bit() because >> there's >> solely test_bit() (same for the generic_* naming). > Yes, that what I meant. > >> I guess I can accept >> that then, despite the slight anomaly you point out, resulting in the >> question towards 3 underscores in a row. To clarify, my thinking was >> more >> towards there not possibly being generic forms of test_and_*() (i.e. >> no >> possible set of arch_test_and_*() or generic_test_and_*()), thus >> using >> double inner underscores in arch__test_*() and generic__test_*() to >> signify that those are purely internal functions, which aren't >> supposed to >> be called directly. > I understand your point regarding functions that start with "__". > For example, __test_and_clear_bit() is used not only internally (in > terms of architecture code) but also in common code, so it is not > strictly internal. I may have misunderstood what "internal function" > means in this context. > > I thought that, at least for bit operations, "__bit_operation" means > that the bit operation is non-atomic and can be reordered, which > implies that it's not a good idea to use it in common code without > additional steps. Correct, up to the comma; those may very well be used in common code, provided non-atomic forms indeed suffice. But in my reply I didn't talk about double-underscore-prefixes in names of involved functions. I talked about inner double underscores. > Anyway, I am not sure I understand which approach I should use in this > patch. You mentioned that possibly test_and_() can't have a generic > form, meaning it won't be a set of arch_test_and_() functions. > > So, can I rename arch__test_() and generic__test_() to arch_test_() and > generic_test_(), respectively, and use the renamed functions in > _test_and*() in xen/bitops.h? Is my understanding correct? You could. You could also stick to what you have now - as said, I can accept that with the worked out explanation. Or you could switch to using arch__test_bit() and generic__test_bit(), thus having the double inner underscores identify "internal to the implementation" functions. My preference would be in backwards order of what I have just enumerated as possible options. I wonder whether really no-one else has any opinion here ... Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |