Re: [PATCH] selftests/ftrace: Fix test to handle both old and new kernels

2024-08-20 Thread Shuah Khan
On 8/19/24 13:20, Steven Rostedt wrote: On Fri, 14 Jun 2024 12:43:22 -0400 Steven Rostedt wrote: Shuah, Can you take this through your tree? Ping. -- Steve Thanks, -- Steve On Wed, 15 May 2024 01:36:20 -0400 Steven Rostedt wrote: From: "Steven Rostedt (Google)" The function "sch

Re: [PATCH v3 4/7] mm/mremap: Replace can_modify_mm with can_modify_vma

2024-08-20 Thread Lorenzo Stoakes
On Sat, Aug 17, 2024 at 01:18:31AM GMT, Pedro Falcato wrote: > Delegate all can_modify checks to the proper places. Unmap checks are > done in do_unmap (et al). The source VMA check is done purposefully > before unmapping, to keep the original mseal semantics. > > Signed-off-by: Pedro Falcato > --

Re: [PATCH v3 3/7] mm/mprotect: Replace can_modify_mm with can_modify_vma

2024-08-20 Thread Lorenzo Stoakes
On Sat, Aug 17, 2024 at 01:18:30AM GMT, Pedro Falcato wrote: > Avoid taking an extra trip down the mmap tree by checking the vmas > directly. mprotect (per POSIX) tolerates partial failure. Pretty sure this also applies to any such mXXX() operation, though I haven't read the formalised POSIX spec.

Re: [PATCH v3 2/7] mm/munmap: Replace can_modify_mm with can_modify_vma

2024-08-20 Thread Lorenzo Stoakes
On Sat, Aug 17, 2024 at 01:18:29AM GMT, Pedro Falcato wrote: > We were doing an extra mmap tree traversal just to check if the entire > range is modifiable. This can be done when we iterate through the VMAs > instead. > > Signed-off-by: Pedro Falcato > --- > mm/mmap.c | 11 +-- > mm/vma.c

Re: [PATCH v3 1/7] mm: Move can_modify_vma to mm/vma.h

2024-08-20 Thread Lorenzo Stoakes
On Sat, Aug 17, 2024 at 01:18:28AM GMT, Pedro Falcato wrote: > Move can_modify_vma to vma.h so it can be inlined properly (with > the intent to remove can_modify_mm callsites). > > Signed-off-by: Pedro Falcato > --- > mm/mseal.c | 17 - > mm/vma.h | 28 ++

Re: [PATCH 0/3] selftests: Fix cpuid / vendor checking build issues

2024-08-20 Thread Shuah Khan
On 8/13/24 04:45, Ilpo Järvinen wrote: First, generalize resctrl selftest non-contiguous CAT check to not assume non-AMD vendor implies Intel. Second, improve kselftest common parts and resctrl selftest such that the use of __cpuid_count() does not lead into a build failure (happens at least on A

Re: [PATCH v1 0/2] mremap refactor: check src address for vma boundaries first.

2024-08-20 Thread Oliver Sang
hi, Jeff, here is a update per your test request. we extented the runtime to 600 seconds, and run 10 times for each commit. = compiler/cpufreq_governor/kconfig/nr_threads/rootfs/tbox_group/test/testcase/testt

[PATCH v5 2/2] selftests: Add a test mangling with uc_sigmask

2024-08-20 Thread Dev Jain
This test asserts the relation between blocked signal, delivered signal, and ucontext. The ucontext is mangled with, by adding a signal mask to it; on return from the handler, the thread must block the corresponding signal. In the test description, I have also described signal delivery and blockag

[PATCH v5 1/2] selftests: Rename sigaltstack to generic signal

2024-08-20 Thread Dev Jain
Rename sigaltstack to signal, and rename the existing test to sigaltstack.c. Signed-off-by: Dev Jain Reviewed-by: Mark Brown --- tools/testing/selftests/Makefile| 2 +- tools/testing/selftests/{sigaltstack => signal}/.gitignore | 2 +- tools/testing/selftest

[PATCH v5 0/2] Add test to distinguish between thread's signal mask and ucontext_t

2024-08-20 Thread Dev Jain
This patch series is motivated by the following observation: Raise a signal, jump to signal handler. The ucontext_t structure dumped by kernel to userspace has a uc_sigmask field having the mask of blocked signals. If you run a fresh minimalistic program doing this, this field is empty, even if yo

[PATCH v1] tools:mm:Check mmap based on return values

2024-08-20 Thread Yang Ruibin
To correctly detect whether mmap is successful, must use if (map_ptr == MAP_FAILED)to avoid incorrectly handling a valid mapping. Signed-off-by: Yang Ruibin <11162...@vivo.com> --- tools/testing/selftests/mm/ksm_tests.c | 2 +- tools/testing/selftests/mm/madv_populate.c | 2 +- tools/testing

Re: [PATCH v5 0/4] Allow userspace to change ID_AA64PFR1_EL1

2024-08-20 Thread Shaoqin Huang
Hi Marc, Oliver, Kindly ping for this series. Welcome your feedbacks. I wonder if this implementation satisfy your expectation? Thanks, Shaoqin On 7/23/24 15:19, Shaoqin Huang wrote: Hi guys, This is another try to allow userspace to change ID_AA64PFR1_EL1, and we want to give userspace the

Re: [PATCH net-next v3] selftests: net: add helper for checking if nettest is available

2024-08-20 Thread Hangbin Liu
On Tue, Aug 20, 2024 at 06:22:27PM -0700, Jakub Kicinski wrote: > A few tests check if nettest exists in the $PATH before adding > $PWD to $PATH and re-checking. They don't discard stderr on > the first check (and nettest is built as part of selftests, > so it's pretty normal for it to not be avail

Re: [PATCH net-next v2] selftests: net: add helper for checking if nettest is available

2024-08-20 Thread Hangbin Liu
On Tue, Aug 20, 2024 at 06:21:47PM -0700, Jakub Kicinski wrote: > On Tue, 20 Aug 2024 08:44:12 -0700 Jakub Kicinski wrote: > > On Tue, 20 Aug 2024 11:18:47 +0800 Hangbin Liu wrote: > > > Excuse me, what's profile used here? I can't find the definition in > > > Documentation/dev-tools/kselftest.rst.

Re: [PATCH net-next v19 03/13] netdev: support binding dma-buf to netdevice

2024-08-20 Thread Jakub Kicinski
On Tue, 20 Aug 2024 13:11:20 -0400 Mina Almasry wrote: > > Protecting the stack from unreadable memory is *the* challenge > > in this series. The rest is a fairly straightforward. > > Understandable. I pulled the trigger on v21 with the build fix last > night after reading your response on the o

Re: [PATCH RFT v9 4/8] fork: Add shadow stack support to clone3()

2024-08-20 Thread Edgecombe, Rick P
On Wed, 2024-08-21 at 01:19 +0100, Mark Brown wrote: > I think it's going to be strange one way or another, either you specify > a size that we don't currently really use or you have two things both > called stacks which are described differently. I would guess users of raw clone3 calls would be a

Re: [PATCH net 00/14] mptcp: pm: fix IDs not being reusable

2024-08-20 Thread patchwork-bot+netdevbpf
Hello: This series was applied to netdev/net.git (main) by Jakub Kicinski : On Mon, 19 Aug 2024 21:45:18 +0200 you wrote: > Here are more fixes for the MPTCP in-kernel path-manager. In this > series, the fixes are around the endpoint IDs not being reusable for > on-going connections when re-creat

[PATCH net-next v3] selftests: net: add helper for checking if nettest is available

2024-08-20 Thread Jakub Kicinski
A few tests check if nettest exists in the $PATH before adding $PWD to $PATH and re-checking. They don't discard stderr on the first check (and nettest is built as part of selftests, so it's pretty normal for it to not be available in system $PATH). This leads to output noise: which: no nettest

Re: [PATCH net-next v2] selftests: net: add helper for checking if nettest is available

2024-08-20 Thread Jakub Kicinski
On Tue, 20 Aug 2024 08:44:12 -0700 Jakub Kicinski wrote: > On Tue, 20 Aug 2024 11:18:47 +0800 Hangbin Liu wrote: > > Excuse me, what's profile used here? I can't find the definition in > > Documentation/dev-tools/kselftest.rst. > > Ah, sorry, I added timestamping output as a local patch for NIPA

Re: [PATCH RFT v9 4/8] fork: Add shadow stack support to clone3()

2024-08-20 Thread Mark Brown
On Tue, Aug 20, 2024 at 11:57:23PM +, Edgecombe, Rick P wrote: > On Wed, 2024-08-21 at 00:34 +0100, Mark Brown wrote: > > I was doing things this way for symmetry with how we specify the normal > > stack.  That's a bit different since the kernel will actually use the > > size for the normal st

Re: [PATCH RFT v9 4/8] fork: Add shadow stack support to clone3()

2024-08-20 Thread Edgecombe, Rick P
On Wed, 2024-08-21 at 00:34 +0100, Mark Brown wrote: > > Why do we need both shadow_stack and shadow_stack_size? We are basically > > asking > > it to consume a token at a pointer and have userspace manage the shadow > > stack > > itself. So why does the kernel care what size it is? Couldn't we jus

Re: [PATCH v8 net-next 1/3] selftests: net: Create veth pair for testing in networkless kernel

2024-08-20 Thread Jakub Kicinski
On Mon, 19 Aug 2024 17:42:33 +0530 Abhinav Jain wrote: > + echo "veth0" > "$TMP_LIST_NETDEV" > + echo "veth1" >> "$TMP_LIST_NETDEV" Why test both ends? Aren't we going to do the same exact test twice?

Re: [PATCH RFT v9 4/8] fork: Add shadow stack support to clone3()

2024-08-20 Thread Mark Brown
On Tue, Aug 20, 2024 at 09:36:46PM +, Edgecombe, Rick P wrote: > On Mon, 2024-08-19 at 20:24 +0100, Mark Brown wrote: > > +   /* This should really be an atomic cmpxchg.  It is not. */ > > +   copy_from_user_page(vma, page, addr, &val, maddr + offset, > > +   si

Re: [PATCH net-next v5] net: netconsole: selftests: Create a new netconsole selftest

2024-08-20 Thread Jakub Kicinski
On Mon, 19 Aug 2024 02:03:53 -0700 Breno Leitao wrote: > +function check_for_dependencies() { > + if [ "$(id -u)" -ne 0 ]; then > + echo "This test must be run as root" >&2 > + exit "${ksft_skip}" > + fi > + > + if ! which socat > /dev/null ; then > +

kselftest/next kselftest-seccomp: 1 runs, 1 regressions (v6.11-rc1-13-g41f37c852ac3f)

2024-08-20 Thread kernelci.org bot
kselftest/next kselftest-seccomp: 1 runs, 1 regressions (v6.11-rc1-13-g41f37c852ac3f) Regressions Summary --- platform| arch | lab | compiler | defconfig | regressions +--+-+--+---

kselftest/next kselftest-lkdtm: 1 runs, 1 regressions (v6.11-rc1-13-g41f37c852ac3f)

2024-08-20 Thread kernelci.org bot
kselftest/next kselftest-lkdtm: 1 runs, 1 regressions (v6.11-rc1-13-g41f37c852ac3f) Regressions Summary --- platform| arch | lab | compiler | defconfig | regressions +--+-+--+-

kselftest/next kselftest-lib: 1 runs, 1 regressions (v6.11-rc1-13-g41f37c852ac3f)

2024-08-20 Thread kernelci.org bot
kselftest/next kselftest-lib: 1 runs, 1 regressions (v6.11-rc1-13-g41f37c852ac3f) Regressions Summary --- platform| arch | lab | compiler | defconfig | regressions +--+-+--+---

Re: [PATCH net-next] selftests: net/forwarding: spawn sh inside vrf to speed up ping loop

2024-08-20 Thread patchwork-bot+netdevbpf
Hello: This patch was applied to netdev/net-next.git (main) by Jakub Kicinski : On Sat, 17 Aug 2024 13:36:59 -0700 you wrote: > Looking at timestamped output of netdev CI reveals that > most of the time in forwarding tests for custom route > hashing is spent on a single case, namely the test whic

Re: [PATCH v2] kunit: Device wrappers should also manage driver name

2024-08-20 Thread Rae Moar
On Fri, Aug 16, 2024 at 12:51 AM David Gow wrote: > > kunit_driver_create() accepts a name for the driver, but does not copy > it, so if that name is either on the stack, or otherwise freed, we end > up with a use-after-free when the driver is cleaned up. > > Instead, strdup() the name, and manage

kselftest/next build: 7 builds: 2 failed, 5 passed, 1 warning (v6.11-rc1-13-g41f37c852ac3f)

2024-08-20 Thread kernelci.org bot
kselftest/next build: 7 builds: 2 failed, 5 passed, 1 warning (v6.11-rc1-13-g41f37c852ac3f) Full Build Summary: https://kernelci.org/build/kselftest/branch/next/kernel/v6.11-rc1-13-g41f37c852ac3f/ Tree: kselftest Branch: next Git Describe: v6.11-rc1-13-g41f37c852ac3f Git Commit: 41f37c852ac3fbf

Re: [PATCH RFT v9 2/8] selftests: Provide helper header for shadow stack testing

2024-08-20 Thread Edgecombe, Rick P
On Mon, 2024-08-19 at 20:24 +0100, Mark Brown wrote: > + > +#ifndef ENABLE_SHADOW_STACK > +static inline void enable_shadow_stack(void) { } > +#endif > + > +#endif > + > + Trivial, I get: Applying: selftests: Provide helper header for shadow stack testing .git/rebase-apply/patch:72: new blank lin

Re: [PATCH RFT v9 4/8] fork: Add shadow stack support to clone3()

2024-08-20 Thread Edgecombe, Rick P
On Mon, 2024-08-19 at 20:24 +0100, Mark Brown wrote: [snip] >   > diff --git a/arch/x86/kernel/shstk.c b/arch/x86/kernel/shstk.c > index 059685612362..42b2b18de20d 100644 > --- a/arch/x86/kernel/shstk.c > +++ b/arch/x86/kernel/shstk.c > @@ -191,44 +191,103 @@ void reset_thread_features(void) >  

[PATCH 1/1] Improve missing mods error message and make shell script executable

2024-08-20 Thread David Hunter
Make the test executable. Currently, tests in this shell script are not executable, so the scipt file is skipped entirely. Also, the error message descirbing the required modules is inaccurate. Currently, only "SKIP: Need act_mirred module" is shown. As a result, users might only that module; how

[PATCH-cgroup 1/2] cgroup/cpuset: Account for boot time isolated CPUs

2024-08-20 Thread Waiman Long
With the "isolcpus" boot command line parameter, we are able to create isolated CPUs at boot time. These isolated CPUs aren't fully accounted for in the cpuset code. For instance, the root cgroup's "cpuset.cpus.isolated" control file does not include the boot time isolated CPUs. Fix that by looking

[PATCH-cgroup 2/2] selftest/cgroup: Make test_cpuset_prs.sh deal with pre-isolated CPUs

2024-08-20 Thread Waiman Long
Since isolated CPUs can be reserved at boot time via the "isolcpus" boot command line option, these pre-isolated CPUs may interfere with testing done by test_cpuset_prs.sh. With the previous commit that incorporates those boot time isolated CPUs into "cpuset.cpus.isolated", we can check for those

[PATCH-cgroup 0/2] cgroup/cpuset: Account for boot time isolated CPUs

2024-08-20 Thread Waiman Long
The current cpuset code and test_cpuset_prs.sh test have not fully account for the possibility of pre-isolated CPUs added by the "isolcpus" boot command line parameter. This patch series modifies them to do the right thing whether or not "isolcpus" is present or not. The updated test_cpuset_prs.sh

Re: [PATCH v10 19/40] arm64/gcs: Context switch GCS state for EL0

2024-08-20 Thread Mark Brown
On Mon, Aug 19, 2024 at 04:44:52PM +0100, Mark Brown wrote: > On Mon, Aug 19, 2024 at 12:46:13PM +0100, Catalin Marinas wrote: > > On Thu, Aug 01, 2024 at 01:06:46PM +0100, Mark Brown wrote: > > > + /* > > > + * Ensure that GCS changes are observable by/from other PEs in > > > + * case of migrat

Re: [PATCH v2] kunit: Device wrappers should also manage driver name

2024-08-20 Thread Ivan Orlov
On Fri, Aug 16, 2024 at 12:51:22PM +0800, David Gow wrote: > diff --git a/include/kunit/test.h b/include/kunit/test.h > index e2a1f0928e8b..5ac237c949a0 100644 > --- a/include/kunit/test.h > +++ b/include/kunit/test.h > @@ -28,6 +28,7 @@ > #include > > #include > +#include > > /* Static k

Re: [PATCH v10 13/40] arm64/mm: Map pages for guarded control stack

2024-08-20 Thread Catalin Marinas
On Tue, Aug 20, 2024 at 04:28:21PM +0100, Mark Brown wrote: > On Tue, Aug 20, 2024 at 03:59:21PM +0100, Catalin Marinas wrote: > > On Mon, Aug 19, 2024 at 05:33:24PM +0100, Mark Brown wrote: > > > On Mon, Aug 19, 2024 at 10:10:36AM +0100, Catalin Marinas wrote: > > > > Is there any arch restriction

Re: [PATCH v10 20/40] arm64/gcs: Ensure that new threads have a GCS

2024-08-20 Thread Catalin Marinas
On Mon, Aug 19, 2024 at 04:57:08PM +0100, Mark Brown wrote: > On Mon, Aug 19, 2024 at 01:04:18PM +0100, Catalin Marinas wrote: > > On Thu, Aug 01, 2024 at 01:06:47PM +0100, Mark Brown wrote: > > > +static int copy_thread_gcs(struct task_struct *p, > > > +const struct kernel_clon

Re: [PATCH net-next v19 03/13] netdev: support binding dma-buf to netdevice

2024-08-20 Thread Mina Almasry
On Tue, Aug 20, 2024 at 11:19 AM Jakub Kicinski wrote: > > On Tue, 20 Aug 2024 00:01:02 -0400 Mina Almasry wrote: > > Took a bit of a look here. Forgive me, I'm not that familiar with XDP > > and virtual interfaces, so I'm a bit unsure what to do here. > > > > For veth, it seems, the device behind

Re: [PATCH v10 19/40] arm64/gcs: Context switch GCS state for EL0

2024-08-20 Thread Catalin Marinas
On Mon, Aug 19, 2024 at 04:44:42PM +0100, Mark Brown wrote: > On Mon, Aug 19, 2024 at 12:46:13PM +0100, Catalin Marinas wrote: > > On Thu, Aug 01, 2024 at 01:06:46PM +0100, Mark Brown wrote: > > > + /* > > > + * Ensure that GCS changes are observable by/from other PEs in > > > + * case of migrati

Re: [PATCH v9 00/13] riscv: Add support for xtheadvector

2024-08-20 Thread Conor Dooley
On Mon, Aug 19, 2024 at 04:06:08PM -0700, Charlie Jenkins wrote: > On Tue, Aug 13, 2024 at 04:55:27PM +0100, Conor Dooley wrote: > > On Mon, Aug 12, 2024 at 05:45:30PM -0700, Charlie Jenkins wrote: > > > On Fri, Aug 09, 2024 at 11:31:15PM +0100, Conor Dooley wrote: > > > > On Tue, Aug 06, 2024 at 0

Re: [PATCH net-next v13 04/14] mm: page_frag: add '_va' suffix to page_frag API

2024-08-20 Thread Alexander Duyck
On Tue, Aug 20, 2024 at 6:07 AM Yunsheng Lin wrote: > > On 2024/8/19 23:54, Alexander Duyck wrote: > > ... > > > "There are three types of API as proposed in this patchset instead of > two types of API: > 1. page_frag_alloc_va() returns [va]. > 2. page_frag_alloc_pg() retu

Re: [PATCH v3 7/7] selftests/mm: add more mseal traversal tests

2024-08-20 Thread Liam R. Howlett
* Pedro Falcato [240818 02:36]: > On Sat, Aug 17, 2024 at 1:18 AM Pedro Falcato wrote: > > @@ -983,6 +1019,41 @@ static void test_seal_munmap_vma_with_gap(bool seal) > > REPORT_TEST_PASS(); > > } > > > > +static void test_seal_munmap_partial_across_vmas(bool seal) > > +{ > > + void

Re: [PATCH net-next v2] selftests: net: add helper for checking if nettest is available

2024-08-20 Thread Jakub Kicinski
On Tue, 20 Aug 2024 11:18:47 +0800 Hangbin Liu wrote: > Excuse me, what's profile used here? I can't find the definition in > Documentation/dev-tools/kselftest.rst. Ah, sorry, I added timestamping output as a local patch for NIPA. Random example: TAP version 13 1..1 # overriding timeout to 7200

Re: [PATCH v10 13/40] arm64/mm: Map pages for guarded control stack

2024-08-20 Thread Mark Brown
On Tue, Aug 20, 2024 at 03:59:21PM +0100, Catalin Marinas wrote: > On Mon, Aug 19, 2024 at 05:33:24PM +0100, Mark Brown wrote: > > On Mon, Aug 19, 2024 at 10:10:36AM +0100, Catalin Marinas wrote: > > > At a quick look, do_mmap() seems to always set VM_MAYEXEC but discard it > > > for non-executabl

Re: [PATCH net-next v19 03/13] netdev: support binding dma-buf to netdevice

2024-08-20 Thread Jakub Kicinski
On Tue, 20 Aug 2024 00:01:02 -0400 Mina Almasry wrote: > Took a bit of a look here. Forgive me, I'm not that familiar with XDP > and virtual interfaces, so I'm a bit unsure what to do here. > > For veth, it seems, the device behind the veth is stored in > veth_priv->peer, so it seems maybe a dev_g

Re: [PATCH v10 13/40] arm64/mm: Map pages for guarded control stack

2024-08-20 Thread Catalin Marinas
On Mon, Aug 19, 2024 at 05:33:24PM +0100, Mark Brown wrote: > On Mon, Aug 19, 2024 at 10:10:36AM +0100, Catalin Marinas wrote: > > On Thu, Aug 01, 2024 at 01:06:40PM +0100, Mark Brown wrote: > > > + if (system_supports_gcs() && (vm_flags & VM_SHADOW_STACK)) { > > > + /* > > > + * A

Re: [PATCH net-next v2] selftests: net: add helper for checking if nettest is available

2024-08-20 Thread Ido Schimmel
On Mon, Aug 19, 2024 at 05:42:17PM -0700, Jakub Kicinski wrote: > A few tests check if nettest exists in the $PATH before adding > $PWD to $PATH and re-checking. They don't discard stderr on > the first check (and nettest is built as part of selftests, > so it's pretty normal for it to not be avail

Re: [PATCH net-next v13 04/14] mm: page_frag: add '_va' suffix to page_frag API

2024-08-20 Thread Yunsheng Lin
On 2024/8/19 23:54, Alexander Duyck wrote: ... "There are three types of API as proposed in this patchset instead of two types of API: 1. page_frag_alloc_va() returns [va]. 2. page_frag_alloc_pg() returns [page, offset]. 3. page_frag_alloc() returns [va] & [page, off

Re: [PATCH v3 0/7] mm: workingset reporting

2024-08-20 Thread Gregory Price
On Tue, Aug 13, 2024 at 09:56:11AM -0700, Yuanchu Xie wrote: > This patch series provides workingset reporting of user pages in > lruvecs, of which coldness can be tracked by accessed bits and fd > references. However, the concept of workingset applies generically to > all types of memory, which co

[PATCH net] selftests: mlxsw: ethtool_lanes: Source ethtool lib from correct path

2024-08-20 Thread Petr Machata
From: Ido Schimmel Source the ethtool library from the correct path and avoid the following error: ./ethtool_lanes.sh: line 14: ./../../../net/forwarding/ethtool_lib.sh: No such file or directory Fixes: 40d269c000bd ("selftests: forwarding: Move several selftests") Signed-off-by: Ido Schimmel

Re: [PATCH v2] selftests: kvm: fix mkdir error when building for unsupported arch

2024-08-20 Thread Muhammad Usama Anjum
On 8/19/24 9:33 PM, Sean Christopherson wrote: > +KVM arch maintainers > > On Mon, Aug 19, 2024, Muhammad Usama Anjum wrote: >> The tests are built on per architecture basis. When unsupported >> architecture is specified, it has no tests and TEST_GEN_PROGS is empty. >> The lib.mk has support for n

Re: [PATCH 1/2] mm: Retry migration earlier upon refcount mismatch

2024-08-20 Thread Dev Jain
On 8/19/24 12:28, Huang, Ying wrote: Dev Jain writes: On 8/13/24 12:52, Dev Jain wrote: On 8/13/24 10:30, Dev Jain wrote: On 8/12/24 17:38, Dev Jain wrote: On 8/12/24 13:01, Huang, Ying wrote: Dev Jain writes: On 8/12/24 11:45, Huang, Ying wrote: Dev Jain writes: On 8/12/24 11:04,