From: Takashi Iwai <tiwai@suse.de> To: Arnd Bergmann <arnd@arndb.de> Cc: <alsa-devel@alsa-project.org>, Takashi Iwai <tiwai@suse.com>, Baolin Wang <baolin.wang7@gmail.com>, <y2038@lists.linaro.org>, <linux-kernel@vger.kernel.org>, Jaroslav Kysela <perex@perex.cz>, Mark Brown <broonie@kernel.org> Subject: Re: [PATCH v7 0/8] Fix year 2038 issue for sound subsystem Date: Tue, 17 Dec 2019 11:42:03 +0100 [thread overview] Message-ID: <s5htv5z1bes.wl-tiwai@suse.de> (raw) In-Reply-To: <20191211212025.1981822-1-arnd@arndb.de> On Wed, 11 Dec 2019 22:20:16 +0100, Arnd Bergmann wrote: > > This is a series I worked on with Baolin in 2017 and 2018, but we > never quite managed to finish up the last pieces. During the > ALSA developer meetup at ELC-E 2018 in Edinburgh, a decision was > made to go with this approach for keeping best compatibility > with existing source code, and then I failed to follow up by > resending the patches. > > Now I have patches for all remaining time_t uses in the kernel, > so it's absolutely time to revisit them. I have done more > review of the patches myself and found a couple of minor issues > that I have fixed up, otherwise the series is still the same as > before. > > Conceptually, the idea of these patches is: > > - 64-bit applications should see no changes at all, neither > compile-time nor run-time. > > - 32-bit code compiled with a 64-bit time_t currently > does not work with ALSA, and requires kernel changes and/or > sound/asound.h changes > > - Most 32-bit code using these interfaces will work correctly > on a modified kernel, with or without the uapi header changes. > > - 32-bit code using SNDRV_TIMER_IOCTL_TREAD requires the > updated header file for 64-bit time_t support > > - 32-bit i386 user space with 64-bit time_t is broken for > SNDRV_PCM_IOCTL_STATUS, SNDRV_RAWMIDI_IOCTL_STATUS and > SNDRV_PCM_IOCTL_SYNC_PTR because of i386 alignment. This is also > addressed by the updated uapi header. > > - PCM mmap is currently supported on native x86 kernels > (both 32-bit and 64-bit) but not for compat mode. This series breaks > the 32-bit native mmap support for 32-bit time_t, but instead allows > it for 64-bit time_t on both native and compat kernels. This seems to > be the best trade-off, as mmap support is optional already, and most > 32-bit code runs in compat mode anyway. > > - I've tried to avoid breaking compilation of 32-bit code > as much as possible. Anything that does break however is likely code > that is already broken on 64-bit time_t and needs source changes to > fix them. > > I hope I addressed all review comments by now, so please pull this > for linux-5.6. > > A git branch with the same contents is available for testing at [1]. > > Arnd I see no issue other than the timer API patch Ben pointed. Could you resubmit that patch? Or just submit the whole as v8, I don't mind either way. Then we'll get this done for 5.6. Thanks! Takashi > > [1] https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git y2038-alsa-v7 > [2] https://lore.kernel.org/lkml/CAK8P3a2Os66+iwQYf97qh05W2JP8rmWao8zmKoHiXqVHvyYAJA@mail.gmail.com/T/#m6519cb07cfda08adf1dedea6596bb98892b4d5dc > > Changes since v6: (Arnd): > - Add a patch to update the API versions > - Hide a timespec reference in #ifndef __KERNEL__ to remove the > last reference to time_t > - Use a more readable way to do padding and describe it in the > changelog > - Rebase to linux-5.5-rc1, changing include/sound/soc-component.h > and sound/drivers/aloop.c as needed. > > Changes since v5 (Arnd): > - Rebased to linux-5.4-rc4 > - Updated to completely remove timespec and time_t references from alsa > - found and fixed a few bugs > > Changes since v4 (Baolin): > - Add patch 5 to change trigger_tstamp member of struct snd_pcm_runtime. > - Add patch 8 to change internal timespec. > - Add more explanation in commit message. > - Use ktime_get_real_ts64() in patch 6. > - Split common code out into a separate function in patch 6. > - Fix tu->tread bug in patch 6 and remove #if __BITS_PER_LONG == 64 macro. > > Changes since v3: > - Move struct snd_pcm_status32 to pcm.h file. > - Modify comments and commit message. > - Add new patch2 ~ patch6. > > Changes since v2: > - Renamed all structures to make clear. > - Remove CONFIG_X86_X32 macro and introduced new compat_snd_pcm_status64_x86_32. > > Changes since v1: > - Add one macro for struct snd_pcm_status_32 which only active in 32bits kernel. > - Convert pcm_compat.c to use struct snd_pcm_status_64. > - Convert pcm_native.c to use struct snd_pcm_status_64. > --- > > Arnd Bergmann (3): > ALSA: move snd_pcm_ioctl_sync_ptr_compat into pcm_native.c > ALSA: add new 32-bit layout for snd_pcm_mmap_status/control > ALSA: bump uapi version numbers > > Baolin Wang (6): > ALSA: Replace timespec with timespec64 > ALSA: Avoid using timespec for struct snd_timer_status > ALSA: Avoid using timespec for struct snd_ctl_elem_value > ALSA: Avoid using timespec for struct snd_pcm_status > ALSA: Avoid using timespec for struct snd_rawmidi_status > ALSA: Avoid using timespec for struct snd_timer_tread > > include/sound/pcm.h | 74 ++++++-- > include/sound/soc-component.h | 4 +- > include/sound/timer.h | 4 +- > include/uapi/sound/asound.h | 145 +++++++++++++-- > sound/core/pcm.c | 12 +- > sound/core/pcm_compat.c | 282 ++++++++---------------------- > sound/core/pcm_lib.c | 38 ++-- > sound/core/pcm_native.c | 226 +++++++++++++++++++++--- > sound/core/rawmidi.c | 132 +++++++++++--- > sound/core/rawmidi_compat.c | 87 +++------ > sound/core/timer.c | 229 ++++++++++++++++++------ > sound/core/timer_compat.c | 62 +------ > sound/drivers/aloop.c | 2 +- > sound/pci/hda/hda_controller.c | 10 +- > sound/soc/intel/skylake/skl-pcm.c | 4 +- > 15 files changed, 817 insertions(+), 494 deletions(-) > > -- > 2.20.0 >
WARNING: multiple messages have this Message-ID (diff)
From: Takashi Iwai <tiwai@suse.de> To: Arnd Bergmann <arnd@arndb.de> Cc: alsa-devel@alsa-project.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Takashi Iwai <tiwai@suse.com>, Mark Brown <broonie@kernel.org>, Baolin Wang <baolin.wang7@gmail.com> Subject: Re: [alsa-devel] [PATCH v7 0/8] Fix year 2038 issue for sound subsystem Date: Tue, 17 Dec 2019 11:42:03 +0100 [thread overview] Message-ID: <s5htv5z1bes.wl-tiwai@suse.de> (raw) In-Reply-To: <20191211212025.1981822-1-arnd@arndb.de> On Wed, 11 Dec 2019 22:20:16 +0100, Arnd Bergmann wrote: > > This is a series I worked on with Baolin in 2017 and 2018, but we > never quite managed to finish up the last pieces. During the > ALSA developer meetup at ELC-E 2018 in Edinburgh, a decision was > made to go with this approach for keeping best compatibility > with existing source code, and then I failed to follow up by > resending the patches. > > Now I have patches for all remaining time_t uses in the kernel, > so it's absolutely time to revisit them. I have done more > review of the patches myself and found a couple of minor issues > that I have fixed up, otherwise the series is still the same as > before. > > Conceptually, the idea of these patches is: > > - 64-bit applications should see no changes at all, neither > compile-time nor run-time. > > - 32-bit code compiled with a 64-bit time_t currently > does not work with ALSA, and requires kernel changes and/or > sound/asound.h changes > > - Most 32-bit code using these interfaces will work correctly > on a modified kernel, with or without the uapi header changes. > > - 32-bit code using SNDRV_TIMER_IOCTL_TREAD requires the > updated header file for 64-bit time_t support > > - 32-bit i386 user space with 64-bit time_t is broken for > SNDRV_PCM_IOCTL_STATUS, SNDRV_RAWMIDI_IOCTL_STATUS and > SNDRV_PCM_IOCTL_SYNC_PTR because of i386 alignment. This is also > addressed by the updated uapi header. > > - PCM mmap is currently supported on native x86 kernels > (both 32-bit and 64-bit) but not for compat mode. This series breaks > the 32-bit native mmap support for 32-bit time_t, but instead allows > it for 64-bit time_t on both native and compat kernels. This seems to > be the best trade-off, as mmap support is optional already, and most > 32-bit code runs in compat mode anyway. > > - I've tried to avoid breaking compilation of 32-bit code > as much as possible. Anything that does break however is likely code > that is already broken on 64-bit time_t and needs source changes to > fix them. > > I hope I addressed all review comments by now, so please pull this > for linux-5.6. > > A git branch with the same contents is available for testing at [1]. > > Arnd I see no issue other than the timer API patch Ben pointed. Could you resubmit that patch? Or just submit the whole as v8, I don't mind either way. Then we'll get this done for 5.6. Thanks! Takashi > > [1] https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git y2038-alsa-v7 > [2] https://lore.kernel.org/lkml/CAK8P3a2Os66+iwQYf97qh05W2JP8rmWao8zmKoHiXqVHvyYAJA@mail.gmail.com/T/#m6519cb07cfda08adf1dedea6596bb98892b4d5dc > > Changes since v6: (Arnd): > - Add a patch to update the API versions > - Hide a timespec reference in #ifndef __KERNEL__ to remove the > last reference to time_t > - Use a more readable way to do padding and describe it in the > changelog > - Rebase to linux-5.5-rc1, changing include/sound/soc-component.h > and sound/drivers/aloop.c as needed. > > Changes since v5 (Arnd): > - Rebased to linux-5.4-rc4 > - Updated to completely remove timespec and time_t references from alsa > - found and fixed a few bugs > > Changes since v4 (Baolin): > - Add patch 5 to change trigger_tstamp member of struct snd_pcm_runtime. > - Add patch 8 to change internal timespec. > - Add more explanation in commit message. > - Use ktime_get_real_ts64() in patch 6. > - Split common code out into a separate function in patch 6. > - Fix tu->tread bug in patch 6 and remove #if __BITS_PER_LONG == 64 macro. > > Changes since v3: > - Move struct snd_pcm_status32 to pcm.h file. > - Modify comments and commit message. > - Add new patch2 ~ patch6. > > Changes since v2: > - Renamed all structures to make clear. > - Remove CONFIG_X86_X32 macro and introduced new compat_snd_pcm_status64_x86_32. > > Changes since v1: > - Add one macro for struct snd_pcm_status_32 which only active in 32bits kernel. > - Convert pcm_compat.c to use struct snd_pcm_status_64. > - Convert pcm_native.c to use struct snd_pcm_status_64. > --- > > Arnd Bergmann (3): > ALSA: move snd_pcm_ioctl_sync_ptr_compat into pcm_native.c > ALSA: add new 32-bit layout for snd_pcm_mmap_status/control > ALSA: bump uapi version numbers > > Baolin Wang (6): > ALSA: Replace timespec with timespec64 > ALSA: Avoid using timespec for struct snd_timer_status > ALSA: Avoid using timespec for struct snd_ctl_elem_value > ALSA: Avoid using timespec for struct snd_pcm_status > ALSA: Avoid using timespec for struct snd_rawmidi_status > ALSA: Avoid using timespec for struct snd_timer_tread > > include/sound/pcm.h | 74 ++++++-- > include/sound/soc-component.h | 4 +- > include/sound/timer.h | 4 +- > include/uapi/sound/asound.h | 145 +++++++++++++-- > sound/core/pcm.c | 12 +- > sound/core/pcm_compat.c | 282 ++++++++---------------------- > sound/core/pcm_lib.c | 38 ++-- > sound/core/pcm_native.c | 226 +++++++++++++++++++++--- > sound/core/rawmidi.c | 132 +++++++++++--- > sound/core/rawmidi_compat.c | 87 +++------ > sound/core/timer.c | 229 ++++++++++++++++++------ > sound/core/timer_compat.c | 62 +------ > sound/drivers/aloop.c | 2 +- > sound/pci/hda/hda_controller.c | 10 +- > sound/soc/intel/skylake/skl-pcm.c | 4 +- > 15 files changed, 817 insertions(+), 494 deletions(-) > > -- > 2.20.0 > _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
next prev parent reply other threads:[~2019-12-17 10:42 UTC|newest] Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-12-11 21:20 [PATCH v7 0/8] Fix year 2038 issue for sound subsystem Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-11 21:20 ` [PATCH v7 1/9] ALSA: Replace timespec with timespec64 Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-11 21:20 ` [PATCH v7 2/9] ALSA: Avoid using timespec for struct snd_timer_status Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-11 21:20 ` [PATCH v7 3/9] ALSA: Avoid using timespec for struct snd_ctl_elem_value Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-11 21:20 ` [PATCH v7 4/9] ALSA: Avoid using timespec for struct snd_pcm_status Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-11 21:20 ` [PATCH v7 5/9] ALSA: Avoid using timespec for struct snd_rawmidi_status Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-11 21:20 ` [PATCH v7 6/9] ALSA: Avoid using timespec for struct snd_timer_tread Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-12 0:14 ` [Y2038] " Ben Hutchings 2019-12-12 0:14 ` [alsa-devel] " Ben Hutchings 2019-12-12 9:57 ` Arnd Bergmann 2019-12-12 9:57 ` [alsa-devel] " Arnd Bergmann 2019-12-12 14:27 ` Ben Hutchings 2019-12-12 14:27 ` [alsa-devel] " Ben Hutchings 2019-12-13 10:25 ` Arnd Bergmann 2019-12-13 10:25 ` [alsa-devel] " Arnd Bergmann 2019-12-11 21:20 ` [PATCH v7 7/9] ALSA: move snd_pcm_ioctl_sync_ptr_compat into pcm_native.c Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-11 21:20 ` [PATCH v7 8/9] ALSA: add new 32-bit layout for snd_pcm_mmap_status/control Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2021-10-06 17:49 ` Michael Forney 2021-10-06 17:49 ` Michael Forney 2021-10-07 10:52 ` Takashi Iwai 2021-10-07 10:52 ` Takashi Iwai 2021-10-07 11:48 ` Arnd Bergmann 2021-10-07 11:48 ` Arnd Bergmann 2021-10-07 12:43 ` Takashi Iwai 2021-10-07 12:43 ` Takashi Iwai 2021-10-07 13:02 ` Takashi Iwai 2021-10-07 13:02 ` Takashi Iwai 2021-10-07 13:11 ` Arnd Bergmann 2021-10-07 13:11 ` Arnd Bergmann 2021-10-07 15:33 ` Takashi Iwai 2021-10-07 15:33 ` Takashi Iwai 2021-10-07 16:06 ` [musl] " Rich Felker 2021-10-07 16:06 ` Rich Felker 2021-10-07 16:18 ` Takashi Iwai 2021-10-07 16:18 ` Takashi Iwai 2021-10-07 16:51 ` Rich Felker 2021-10-07 16:51 ` Rich Felker 2021-10-08 8:43 ` Takashi Iwai 2021-10-08 8:43 ` Takashi Iwai 2021-10-08 8:44 ` Takashi Iwai 2021-10-08 8:44 ` Takashi Iwai 2021-10-08 9:24 ` Arnd Bergmann 2021-10-08 9:24 ` Arnd Bergmann 2021-10-08 11:11 ` Takashi Iwai 2021-10-08 11:11 ` Takashi Iwai 2021-10-08 11:45 ` Arnd Bergmann 2021-10-08 11:45 ` Arnd Bergmann 2021-10-08 11:53 ` Takashi Iwai 2021-10-08 11:53 ` Takashi Iwai 2021-10-08 12:13 ` Arnd Bergmann 2021-10-08 12:13 ` Arnd Bergmann 2021-10-08 12:07 ` Rich Felker 2021-10-08 12:07 ` Rich Felker 2021-10-10 7:53 ` Takashi Iwai 2021-10-10 7:53 ` Takashi Iwai 2021-10-18 14:43 ` Rich Felker 2021-10-18 14:43 ` Rich Felker 2021-10-18 14:58 ` Takashi Iwai 2021-10-18 14:58 ` Takashi Iwai 2021-10-18 15:08 ` Rich Felker 2021-10-18 15:08 ` Rich Felker 2021-10-18 15:26 ` Arnd Bergmann 2021-10-18 15:26 ` Arnd Bergmann 2021-10-18 20:42 ` Rich Felker 2021-10-18 20:42 ` Rich Felker 2021-10-19 14:16 ` Rich Felker 2021-10-19 14:16 ` Rich Felker 2021-10-19 14:23 ` Arnd Bergmann 2021-10-19 14:23 ` Arnd Bergmann 2021-10-08 12:06 ` Rich Felker 2021-10-08 12:06 ` Rich Felker 2021-10-08 12:37 ` Arnd Bergmann 2021-10-08 12:37 ` Arnd Bergmann 2021-10-08 17:20 ` Rich Felker 2021-10-08 17:20 ` Rich Felker 2019-12-11 21:20 ` [PATCH v7 9/9] ALSA: bump uapi version numbers Arnd Bergmann 2019-12-11 21:20 ` [alsa-devel] " Arnd Bergmann 2019-12-17 10:42 ` Takashi Iwai [this message] 2019-12-17 10:42 ` [alsa-devel] [PATCH v7 0/8] Fix year 2038 issue for sound subsystem Takashi Iwai 2019-12-17 21:15 ` Arnd Bergmann 2019-12-17 21:15 ` [alsa-devel] " Arnd Bergmann 2019-12-17 21:16 ` [GIT PULL, v8] " Arnd Bergmann 2019-12-17 21:16 ` [alsa-devel] " Arnd Bergmann 2019-12-17 22:22 ` [PATCH v7 0/8] " Takashi Iwai 2019-12-17 22:22 ` [alsa-devel] " Takashi Iwai
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=s5htv5z1bes.wl-tiwai@suse.de \ --to=tiwai@suse.de \ --cc=alsa-devel@alsa-project.org \ --cc=arnd@arndb.de \ --cc=baolin.wang7@gmail.com \ --cc=broonie@kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=perex@perex.cz \ --cc=tiwai@suse.com \ --cc=y2038@lists.linaro.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.