pastebin - collaborative debugging tool
rovema.kpaste.net RSS


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

  1. From 2c6e3caa9246f3ac9751053d5b862f0361275683 Mon Sep 17 00:00:00 2001
  2. From: Roland Mainz <roland.mainz@nrubsig.org>
  3. Date: Tue, 13 May 2025 14:52:14 +0200
  4. Subject: [PATCH 1/4] tests: Add "install Cygwin 32bit on NFSv4 share" tests to
  5.  manual tests
  6.  
  7. Add "install Cygwin 32bit on NFSv4 share" tests to manual tests
  8.  
  9. Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
  10. ---
  11. tests/manual_testing.txt | 12 ++++++++++++
  12.  1 file changed, 12 insertions(+)
  13.  
  14. diff --git a/tests/manual_testing.txt b/tests/manual_testing.txt
  15. index fe3003b..60b02b4 100644
  16. --- a/tests/manual_testing.txt
  17. +++ b/tests/manual_testing.txt
  18. @@ -758,5 +758,17 @@ ksh93 tests/sparsefiles/testsparsefile1.ksh
  19.  wget 'https://github.com/DynamoRIO/drmemory/releases/download/cronbuild-2.6.20167/DrMemory-Windows-2.6.20167.msi'
  20.  msiexec /i DrMemory-Windows-2.6.20167.msi
  21.  
  22. +
  23. +#
  24. +# test Cygwin 32bit on 64bit Windows on a NFS share
  25. +# (64bit Windows only)
  26. +#
  27. +cd /cygdrive/l/tmp # cwd to NFS driver
  28. +mkdir /cygdrive/l/tmp/cygwin32nfstest
  29. +cd /cygdrive/l/tmp/cygwin32nfstest
  30. +curl --remote-name "https://www.cygwin.com/setup-x86.exe"
  31. +./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"
  32. +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'
  33. +
  34.  #
  35.  # EOF.
  36. --
  37. 2.45.1
  38.  
  39. From 955d49793c285e5ded2b99ccb507c982f06ae327 Mon Sep 17 00:00:00 2001
  40. From: Roland Mainz <roland.mainz@nrubsig.org>
  41. Date: Tue, 13 May 2025 14:53:16 +0200
  42. Subject: [PATCH 2/4] tests: Document how to reset/disable Driver Verifier
  43.  
  44. Document how to reset/disable Driver Verifier.
  45.  
  46. Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
  47. ---
  48. tests/manual_testing.txt | 2 ++
  49.  1 file changed, 2 insertions(+)
  50.  
  51. diff --git a/tests/manual_testing.txt b/tests/manual_testing.txt
  52. index 60b02b4..29691e4 100644
  53. --- a/tests/manual_testing.txt
  54. +++ b/tests/manual_testing.txt
  55. @@ -155,6 +155,8 @@
  56.  #       <reboot>
  57.  #   3. Query verifier status:
  58.  #       $ /cygdrive/c/Windows/system32/verifier /query
  59. +#   4. Disable verifier:
  60. +#       $ verifier /reset
  61.  #
  62.  
  63.  
  64. --
  65. 2.45.1
  66.  
  67. From 620c806a31cfe8f78a5963d84885a3276e0ed0ce Mon Sep 17 00:00:00 2001
  68. From: Roland Mainz <roland.mainz@nrubsig.org>
  69. Date: Tue, 13 May 2025 14:54:09 +0200
  70. Subject: [PATCH 3/4] cygwin: Add
  71.  usr/share/msnfs41client/tests/manual_testing.txt to installation
  72.  
  73. Add usr/share/msnfs41client/tests/manual_testing.txt to installation
  74.  
  75. Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
  76. ---
  77. cygwin/Makefile.install | 1 +
  78.  1 file changed, 1 insertion(+)
  79.  
  80. diff --git a/cygwin/Makefile.install b/cygwin/Makefile.install
  81. index bb39dcc..1b6ed34 100644
  82. --- a/cygwin/Makefile.install
  83. +++ b/cygwin/Makefile.install
  84. @@ -96,6 +96,7 @@ installdest:
  85.         chmod a+x $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/nfsurlconv
  86.         /usr/bin/ksh93 $(CYGWIN_MAKEFILE_DIR)/utils/nfsurlconv/nfsurlconv.ksh --nroff 2>"$(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/man/man1/nfsurlconv.1" || true
  87.         @ printf "# Package tests\n"
  88. +       cp "$(PROJECT_BASEDIR_DIR)/tests/manual_testing.txt" $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/manual_testing.txt
  89.         cp "$(PROJECT_BASEDIR_DIR)/tests/winfsinfo1/winfsinfo.x86_64.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/winfsinfo.x86_64.exe
  90.         cp "$(PROJECT_BASEDIR_DIR)/tests/winfsinfo1/winfsinfo.i686.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/winfsinfo.i686.exe
  91.         if [[ "$(CYGWIN_BASEPATH)" == *64* ]] ; then \
  92. --
  93. 2.45.1
  94.  
  95. From b1e28e67ade82c02201f9a713708570a2abc797c Mon Sep 17 00:00:00 2001
  96. From: Roland Mainz <roland.mainz@nrubsig.org>
  97. Date: Tue, 13 May 2025 17:32:18 +0200
  98. Subject: [PATCH 4/4] sys: Allocate downcall |nfs41_updowncall_entry| from
  99.  stack
  100.  
  101. Allocate downcall |nfs41_updowncall_entry| from stack.
  102. This saves one allocation/free cycle.
  103.  
  104. Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
  105. ---
  106. sys/nfs41sys_buildconfig.h |  2 ++
  107.  sys/nfs41sys_driver.c      |  4 ++++
  108.  sys/nfs41sys_driver.h      |  2 ++
  109.  sys/nfs41sys_updowncall.c  | 14 ++++++++++++++
  110.  4 files changed, 22 insertions(+)
  111.  
  112. diff --git a/sys/nfs41sys_buildconfig.h b/sys/nfs41sys_buildconfig.h
  113. index 68031fc..2809a4a 100644
  114. --- a/sys/nfs41sys_buildconfig.h
  115. +++ b/sys/nfs41sys_buildconfig.h
  116. @@ -22,6 +22,8 @@
  117.  #define _NFS41SYS_BUILDCONFIG_H_ 1
  118.  
  119.  /* Driver build config */
  120. +#define USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM 1
  121. +
  122.  #if (NTDDI_VERSION >= NTDDI_WIN10_VB)
  123.  #define USE_LOOKASIDELISTS_FOR_UPDOWNCALLENTRY_MEM 1
  124.  #define USE_LOOKASIDELISTS_FOR_FCBLISTENTRY_MEM 1
  125. diff --git a/sys/nfs41sys_driver.c b/sys/nfs41sys_driver.c
  126. index b8ab86b..3300723 100644
  127. --- a/sys/nfs41sys_driver.c
  128. +++ b/sys/nfs41sys_driver.c
  129. @@ -91,7 +91,9 @@ DECLARE_CONST_ANSI_STRING(NfsActOnLink, EA_NFSACTONLINK);
  130.  
  131.  #ifdef USE_LOOKASIDELISTS_FOR_UPDOWNCALLENTRY_MEM
  132.  NPAGED_LOOKASIDE_LIST updowncall_entry_upcall_lookasidelist;
  133. +#ifndef USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM
  134.  NPAGED_LOOKASIDE_LIST updowncall_entry_downcall_lookasidelist;
  135. +#endif /* !USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM */
  136.  #endif /* USE_LOOKASIDELISTS_FOR_UPDOWNCALLENTRY_MEM */
  137.  #ifdef USE_LOOKASIDELISTS_FOR_FCBLISTENTRY_MEM
  138.  NPAGED_LOOKASIDE_LIST fcblistentry_lookasidelist;
  139. @@ -1404,10 +1406,12 @@ NTSTATUS DriverEntry(
  140.          &updowncall_entry_upcall_lookasidelist, NULL, NULL,
  141.          POOL_NX_ALLOCATION, sizeof(nfs41_updowncall_entry),
  142.          NFS41_MM_POOLTAG_UP, 0);
  143. +#ifndef USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM
  144.      ExInitializeNPagedLookasideList(
  145.          &updowncall_entry_downcall_lookasidelist, NULL, NULL,
  146.          POOL_NX_ALLOCATION, sizeof(nfs41_updowncall_entry),
  147.          NFS41_MM_POOLTAG_DOWN, 0);
  148. +#endif /* !USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM */
  149.  #endif /* USE_LOOKASIDELISTS_FOR_UPDOWNCALLENTRY_MEM */
  150.  #ifdef USE_LOOKASIDELISTS_FOR_FCBLISTENTRY_MEM
  151.      /*
  152. diff --git a/sys/nfs41sys_driver.h b/sys/nfs41sys_driver.h
  153. index d6aef7c..349a080 100644
  154. --- a/sys/nfs41sys_driver.h
  155. +++ b/sys/nfs41sys_driver.h
  156. @@ -121,7 +121,9 @@ DECLARE_EXTERN_CONST_ANSI_STRING(NfsActOnLink);
  157.  
  158.  #ifdef USE_LOOKASIDELISTS_FOR_UPDOWNCALLENTRY_MEM
  159.  extern NPAGED_LOOKASIDE_LIST updowncall_entry_upcall_lookasidelist;
  160. +#ifndef USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM
  161.  extern NPAGED_LOOKASIDE_LIST updowncall_entry_downcall_lookasidelist;
  162. +#endif /* !USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM */
  163.  #endif /* USE_LOOKASIDELISTS_FOR_UPDOWNCALLENTRY_MEM */
  164.  #ifdef USE_LOOKASIDELISTS_FOR_FCBLISTENTRY_MEM
  165.  extern NPAGED_LOOKASIDE_LIST fcblistentry_lookasidelist;
  166. diff --git a/sys/nfs41sys_updowncall.c b/sys/nfs41sys_updowncall.c
  167. index 08ace7b..f36b936 100644
  168. --- a/sys/nfs41sys_updowncall.c
  169. +++ b/sys/nfs41sys_updowncall.c
  170. @@ -104,6 +104,7 @@ void nfs41_upcall_free_updowncall_entry(nfs41_updowncall_entry *entry)
  171.  #endif /* USE_LOOKASIDELISTS_FOR_UPDOWNCALLENTRY_MEM */
  172.  }
  173.  
  174. +#ifndef USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM
  175.  static
  176.  nfs41_updowncall_entry *nfs41_downcall_allocate_updowncall_entry(void)
  177.  {
  178. @@ -137,6 +138,7 @@ void nfs41_downcall_free_updowncall_entry(nfs41_updowncall_entry *entry)
  179.      RxFreePool(entry);
  180.  #endif /* USE_LOOKASIDELISTS_FOR_UPDOWNCALLENTRY_MEM */
  181.  }
  182. +#endif /* !USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM */
  183.  
  184.  static void unmarshal_nfs41_header(
  185.      nfs41_updowncall_entry *tmp,
  186. @@ -643,8 +645,15 @@ NTSTATUS nfs41_downcall(
  187.      print_hexbuf("downcall buffer", buf, in_len);
  188.  #endif /* DEBUG_PRINT_DOWNCALL_HEXBUF */
  189.  
  190. +#ifdef USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM
  191. +    nfs41_updowncall_entry stacktmp;
  192. +
  193. +    (void)memset(&stacktmp, 0, sizeof(stacktmp));
  194. +    tmp = &stacktmp;
  195. +#else
  196.      tmp = nfs41_downcall_allocate_updowncall_entry();
  197.      if (tmp == NULL) goto out;
  198. +#endif /* USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM */
  199.  
  200.      unmarshal_nfs41_header(tmp, &buf);
  201.  
  202. @@ -801,7 +810,12 @@ NTSTATUS nfs41_downcall(
  203.          KeSetEvent(&cur->cond, 0, FALSE);
  204.  
  205.  out_free:
  206. +#ifdef USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM
  207. +    ;
  208. +#else
  209.      nfs41_downcall_free_updowncall_entry(tmp);
  210.  out:
  211. +#endif /* USE_STACK_FOR_DOWNCALL_UPDOWNCALLENTRY_MEM */
  212. +
  213.      return status;
  214.  }
  215. --
  216. 2.45.1

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.

Syntax highlighting:

To highlight particular lines, prefix each line with {%HIGHLIGHT}




All content is user-submitted.
The administrators of this site (kpaste.net) are not responsible for their content.
Abuse reports should be emailed to us at