This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Question regarding minimal supported Linux kernel headers (now it is 3.2.0)



On 12/11/2019 11:13, Joseph Myers wrote:
> On Tue, 12 Nov 2019, Lukasz Majewski wrote:
> 
>> The pselect6 conversion has been postponed on purpose as microblaze
>> port gained support for pselect6 from Linux kernel 3.15. Between 3.2
>> (minimal supported glibc Linux headers) and 3.15 this syscall is
>> emulated and hence the generic code is convoluted.
>>
>> For the above reason the conversion of pselect6 has been postponed until
>> the minimal glibc's Linux headers are bumped to the version after 3.15.
>>
>> Dear community - when the minimal glibc version may be increased?
>>
>> Are there any guidelines when the minimal version shall be increased
>> (like once per X glibc releases) ?
> 
> For pselect6, I suggest a preparatory change increasing the minimum 
> version for microblaze only and removing the racy emulation code from 
> glibc citing bug 9813, which could then be marked as FIXED with 
> appropriate milestone set once the emulation code has been completely 
> removed.  (misc/pselect.c would change to an ENOSYS stub complete with 
> stub_warning call.)
> 

Another possibility, to avoid pessimization and make microblaze an outlier
regarding minimum kernel support (although I think we already have alpha
in this state) would be:

  1. Move generic pselect as microblaze linux specific implementation.

  2. Clean-up linux implementation to just use pselect6.

  3. Set generic as default ENOSYS/stub and set bug 9813 fixed.

  4. Base microblaze implementation on Linux generic and use fallback
     only if it returns ENOSYS.

  5. Remove __ASSUME_PSELECT6.

  6. Implement __pselect6_time64 as __ppoll_time64.  The microblaze will
     just call the __pselec6 redefined as another symbol and use fallback
     just if it returns ENOSYS.  The generic __pselec6 will use the usual
     path: __pselec6_time64 then __pselec6 if ENOSYS.  This is a performance
     hit on microblaze from kernel 3.2 to 3.15, but I think if pselect is
     indeed required, it is also expected that an updated kernel would be
     used.

Something like https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/azanella/pselect-time64
  


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]