Re: [PATCH liburing v3 0/2] add support for new timeout feature

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sorry. I was thinking the pointer of io_uring will be passed with
io_uring_setup. My fault.

> 2020年8月5日 下午1:17,Jiufei Xue <jiufei.xue@xxxxxxxxxxxxxxxxx> 写道:
> 
> 
> 
> On 2020/8/5 上午11:28, Carter Li 李通洲 wrote:
>>> diff --git a/src/include/liburing.h b/src/include/liburing.h
>>> index 0505a4f..82c2980 100644
>>> --- a/src/include/liburing.h
>>> +++ b/src/include/liburing.h
>>> @@ -56,6 +56,9 @@ struct io_uring {
>>> 	struct io_uring_sq sq;
>>> 	struct io_uring_cq cq;
>>> 	unsigned flags;
>>> +	unsigned flags_internal;
>>> +	unsigned features;
>>> +	unsigned pad[4];
>>> 	int ring_fd;
>>> };
>> 
>> Won't it break existing code runs on newer kernel?
> 
> io_uring is a structure that used in userspace. It breaks the API
> with existing compiled application. So I have changed the soname
> to 2.0.7.
> 
> And for syscall io_uring_enter(), I have added a new feature bit
> IORING_FEAT_GETEVENTS_TIMEOUT and io_uring_enter() flag
> IORING_ENTER_GETEVENTS_TIMEOUT. Here are 3 cases below:
> 
> 1) old liburing <-> new kernel: old liburing can not pass the flag
>   IORING_ENTER_GETEVENTS_TIMEOUT, so new kernel will parse the arguments
>   the original way.
> 
> 2) new liburing <-> old kernel: feature IORING_FEAT_GETEVENTS_TIMEOUT
>   not supported, liburing will do things like before.
> 
> 3) new liburing <-> new kernel: feature IORING_FEAT_GETEVENTS_TIMEOUT
>   supported, liburing pass the new arguments with the flag
>   IORING_ENTER_GETEVENTS_TIMEOUT which helps kernel parse the arguments
>   correctly.
> 
> Thanks,
> Jiufei.
> 
>> Won't it break code compiled with new liburing but runs on older kernel?
>> 
> 
>> IMO In this case, a new syscall `io_uring_setup2` is required at least.
>> 
>> Regards,
>> Carter





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux