Re: [PATCH 0/3] introduce new evdev interface type
From: Pingbo Wen <hidden>
Date: 2015-11-29 09:13:52
Also in:
linux-api, lkml
Hi, Arnd
在 2015年11月28日,00:58,Arnd Bergmann [off-list ref] 写道: On Friday 27 November 2015 18:00:29 WEN Pingbo wrote:quoted
To solve the y2038 problem in input_event, I had some attempts before [1], and this is the second one. We can force userspace to use monotonic time in event timestamp, so the 'struct timeval' is enough to keep y2038-safe, as Arnd suggested. But we can not find a way to make kernel compatible with old binaries, which use realtime, and there are still some devices, which depend on realtime. So I get a idea to add a new evdev interface, which is y2038 safe. And userspace can switch between the old and new interface via ioctl. The patch series add three evdev interface type: - EV_IF_LEGACY send event by input_event. This is the default option, keep kernel backward compatible.The problem I see with this approach is that it still breaks any legacy source code that is compiled with a new libc that uses 64-bit time_t. If we are requiring source code changes for building users of input devices with a new libc, we can easily get them to handle the overflow (they normally only care about the microsecond portion anyway, so it doesn't matter in most cases), or to use monotonic time.
I don’t think so. Actually, from the view of userspace, EV_IF_LEGACY interface is work exactly the same as old evdev. We didn’t change anything in input_event and input_event_compat. And the problem you said will still be there, even without those patches. Pingbo-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/