- From 2c6e3caa9246f3ac9751053d5b862f0361275683 Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Tue, 13 May 2025 14:52:14 +0200
- Subject: [PATCH 1/4] tests: Add "install Cygwin 32bit on NFSv4 share" tests to
- manual tests
- Add "install Cygwin 32bit on NFSv4 share" tests to manual tests
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- tests/manual_testing.txt | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
- diff --git a/tests/manual_testing.txt b/tests/manual_testing.txt
- index fe3003b..60b02b4 100644
- --- a/tests/manual_testing.txt
- +++ b/tests/manual_testing.txt
- @@ -758,5 +758,17 @@ ksh93 tests/sparsefiles/testsparsefile1.ksh
- wget 'https://github.com/DynamoRIO/drmemory/releases/download/cronbuild-2.6.20167/DrMemory-Windows-2.6.20167.msi'
- msiexec /i DrMemory-Windows-2.6.20167.msi
- +
- +#
- +# test Cygwin 32bit on 64bit Windows on a NFS share
- +# (64bit Windows only)
- +#
- +cd /cygdrive/l/tmp # cwd to NFS driver
- +mkdir /cygdrive/l/tmp/cygwin32nfstest
- +cd /cygdrive/l/tmp/cygwin32nfstest
- +curl --remote-name "https://www.cygwin.com/setup-x86.exe"
- +./setup-x86 -q --no-write-registry --no-admin --root "$(cygpath -w "$PWD")" --no-desktop --allow-unsupported-windows -q --no-verify --site "http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/2022/11/23/063457"
- +PATH="$PWD/bin" /cygdrive/c/Windows/system32/cmd.exe /C $'.\\bin\\bash.exe -x -c \'[[ "$(./bin/readlink.exe /proc/self/exe)" =~ $PWD/.*bin/.+ ]] && echo Test OK || echo Test failed'
- +
- #
- # EOF.
- --
- 2.45.1
- From 955d49793c285e5ded2b99ccb507c982f06ae327 Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Tue, 13 May 2025 14:53:16 +0200
- Subject: [PATCH 2/4] tests: Document how to reset/disable Driver Verifier
- Document how to reset/disable Driver Verifier.
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- tests/manual_testing.txt | 2 ++
- 1 file changed, 2 insertions(+)
- diff --git a/tests/manual_testing.txt b/tests/manual_testing.txt
- index 60b02b4..29691e4 100644
- --- a/tests/manual_testing.txt
- +++ b/tests/manual_testing.txt
- @@ -155,6 +155,8 @@
- # <reboot>
- # 3. Query verifier status:
- # $ /cygdrive/c/Windows/system32/verifier /query
- +# 4. Disable verifier:
- +# $ verifier /reset
- #
- --
- 2.45.1
- From 620c806a31cfe8f78a5963d84885a3276e0ed0ce Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Tue, 13 May 2025 14:54:09 +0200
- Subject: [PATCH 3/4] cygwin: Add
- usr/share/msnfs41client/tests/manual_testing.txt to installation
- Add usr/share/msnfs41client/tests/manual_testing.txt to installation
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- cygwin/Makefile.install | 1 +
- 1 file changed, 1 insertion(+)
- diff --git a/cygwin/Makefile.install b/cygwin/Makefile.install
- index bb39dcc..1b6ed34 100644
- --- a/cygwin/Makefile.install
- +++ b/cygwin/Makefile.install
- @@ -96,6 +96,7 @@ installdest:
- chmod a+x $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/nfsurlconv
- /usr/bin/ksh93 $(CYGWIN_MAKEFILE_DIR)/utils/nfsurlconv/nfsurlconv.ksh --nroff 2>"$(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/man/man1/nfsurlconv.1" || true
- @ printf "# Package tests\n"
- + cp "$(PROJECT_BASEDIR_DIR)/tests/manual_testing.txt" $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/manual_testing.txt
- cp "$(PROJECT_BASEDIR_DIR)/tests/winfsinfo1/winfsinfo.x86_64.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/winfsinfo.x86_64.exe
- cp "$(PROJECT_BASEDIR_DIR)/tests/winfsinfo1/winfsinfo.i686.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/winfsinfo.i686.exe
- if [[ "$(CYGWIN_BASEPATH)" == *64* ]] ; then \
- --
- 2.45.1
- From b1e28e67ade82c02201f9a713708570a2abc797c Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Tue, 13 May 2025 17:32:18 +0200
- Subject: [PATCH 4/4] sys: Allocate downcall |nfs41_updowncall_entry| from
- stack
- Allocate downcall |nfs41_updowncall_entry| from stack.
- This saves one allocation/free cycle.
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- sys/nfs41sys_buildconfig.h | 2 ++
- sys/nfs41sys_driver.c | 4 ++++
- sys/nfs41sys_driver.h | 2 ++
- sys/nfs41sys_updowncall.c | 14 ++++++++++++++
- 4 files changed, 22 insertions(+)
- diff --git a/sys/nfs41sys_buildconfig.h b/sys/nfs41sys_buildconfig.h
- index 68031fc..2809a4a 100644
- --- a/sys/nfs41sys_buildconfig.h
- +++ b/sys/nfs41sys_buildconfig.h
- @@ -22,6 +22,8 @@
- #define _NFS41SYS_BUILDCONFIG_H_ 1
- /* Driver build config */
- +#define USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM 1
- +
- #if (NTDDI_VERSION >= NTDDI_WIN10_VB)
- #define USE_LOOKASIDELISTS_FOR_UPDOWNCALLENTRY_MEM 1
- #define USE_LOOKASIDELISTS_FOR_FCBLISTENTRY_MEM 1
- diff --git a/sys/nfs41sys_driver.c b/sys/nfs41sys_driver.c
- index b8ab86b..3300723 100644
- --- a/sys/nfs41sys_driver.c
- +++ b/sys/nfs41sys_driver.c
- @@ -91,7 +91,9 @@ DECLARE_CONST_ANSI_STRING(NfsActOnLink, EA_NFSACTONLINK);
- #ifdef USE_LOOKASIDELISTS_FOR_UPDOWNCALLENTRY_MEM
- NPAGED_LOOKASIDE_LIST updowncall_entry_upcall_lookasidelist;
- +#ifndef USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM
- NPAGED_LOOKASIDE_LIST updowncall_entry_downcall_lookasidelist;
- +#endif /* !USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM */
- #endif /* USE_LOOKASIDELISTS_FOR_UPDOWNCALLENTRY_MEM */
- #ifdef USE_LOOKASIDELISTS_FOR_FCBLISTENTRY_MEM
- NPAGED_LOOKASIDE_LIST fcblistentry_lookasidelist;
- @@ -1404,10 +1406,12 @@ NTSTATUS DriverEntry(
- &updowncall_entry_upcall_lookasidelist, NULL, NULL,
- POOL_NX_ALLOCATION, sizeof(nfs41_updowncall_entry),
- NFS41_MM_POOLTAG_UP, 0);
- +#ifndef USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM
- ExInitializeNPagedLookasideList(
- &updowncall_entry_downcall_lookasidelist, NULL, NULL,
- POOL_NX_ALLOCATION, sizeof(nfs41_updowncall_entry),
- NFS41_MM_POOLTAG_DOWN, 0);
- +#endif /* !USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM */
- #endif /* USE_LOOKASIDELISTS_FOR_UPDOWNCALLENTRY_MEM */
- #ifdef USE_LOOKASIDELISTS_FOR_FCBLISTENTRY_MEM
- /*
- diff --git a/sys/nfs41sys_driver.h b/sys/nfs41sys_driver.h
- index d6aef7c..349a080 100644
- --- a/sys/nfs41sys_driver.h
- +++ b/sys/nfs41sys_driver.h
- @@ -121,7 +121,9 @@ DECLARE_EXTERN_CONST_ANSI_STRING(NfsActOnLink);
- #ifdef USE_LOOKASIDELISTS_FOR_UPDOWNCALLENTRY_MEM
- extern NPAGED_LOOKASIDE_LIST updowncall_entry_upcall_lookasidelist;
- +#ifndef USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM
- extern NPAGED_LOOKASIDE_LIST updowncall_entry_downcall_lookasidelist;
- +#endif /* !USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM */
- #endif /* USE_LOOKASIDELISTS_FOR_UPDOWNCALLENTRY_MEM */
- #ifdef USE_LOOKASIDELISTS_FOR_FCBLISTENTRY_MEM
- extern NPAGED_LOOKASIDE_LIST fcblistentry_lookasidelist;
- diff --git a/sys/nfs41sys_updowncall.c b/sys/nfs41sys_updowncall.c
- index 08ace7b..f36b936 100644
- --- a/sys/nfs41sys_updowncall.c
- +++ b/sys/nfs41sys_updowncall.c
- @@ -104,6 +104,7 @@ void nfs41_upcall_free_updowncall_entry(nfs41_updowncall_entry *entry)
- #endif /* USE_LOOKASIDELISTS_FOR_UPDOWNCALLENTRY_MEM */
- }
- +#ifndef USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM
- static
- nfs41_updowncall_entry *nfs41_downcall_allocate_updowncall_entry(void)
- {
- @@ -137,6 +138,7 @@ void nfs41_downcall_free_updowncall_entry(nfs41_updowncall_entry *entry)
- RxFreePool(entry);
- #endif /* USE_LOOKASIDELISTS_FOR_UPDOWNCALLENTRY_MEM */
- }
- +#endif /* !USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM */
- static void unmarshal_nfs41_header(
- nfs41_updowncall_entry *tmp,
- @@ -643,8 +645,15 @@ NTSTATUS nfs41_downcall(
- print_hexbuf("downcall buffer", buf, in_len);
- #endif /* DEBUG_PRINT_DOWNCALL_HEXBUF */
- +#ifdef USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM
- + nfs41_updowncall_entry stacktmp;
- +
- + (void)memset(&stacktmp, 0, sizeof(stacktmp));
- + tmp = &stacktmp;
- +#else
- tmp = nfs41_downcall_allocate_updowncall_entry();
- if (tmp == NULL) goto out;
- +#endif /* USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM */
- unmarshal_nfs41_header(tmp, &buf);
- @@ -801,7 +810,12 @@ NTSTATUS nfs41_downcall(
- KeSetEvent(&cur->cond, 0, FALSE);
- out_free:
- +#ifdef USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM
- + ;
- +#else
- nfs41_downcall_free_updowncall_entry(tmp);
- out:
- +#endif /* USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM */
- +
- return status;
- }
- --
- 2.45.1
msnfs41client: Patches for tests and allocating kernel downcall context from stack+misc, 2025-05-13
Posted by Anonymous on Tue 13th May 2025 18:13
raw | new post
Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.