From c43ce26a1b452806951b44323a4db6692b0158ff Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Wed, 19 Jan 2022 17:06:17 +0000 Subject: [PATCH] doc: WinFsp-on-ARM64: add info on memory barrier changes --- doc/WinFsp-on-ARM64.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/WinFsp-on-ARM64.asciidoc b/doc/WinFsp-on-ARM64.asciidoc index 56fee125..6a0f418a 100644 --- a/doc/WinFsp-on-ARM64.asciidoc +++ b/doc/WinFsp-on-ARM64.asciidoc @@ -19,6 +19,7 @@ This document summarizes the changes made to WinFsp to support Windows on ARM64. == File System Driver * The `IoInitializeTimer`, `IoStartTimer` and `IoStopTimer` DDI's are missing from Windows on ARM64 (https://social.msdn.microsoft.com/Forums/en-US/e1f4dbbd-a3f1-40a4-8f8b-e12a04b1b074/is-iostarttimer-universal[link]). The same functionality is now implemented within WinFsp in file `src\sys\devtimer.c` +* The FSD (and other WinFsp components) used a number of memory barriers primarily for the purpose of lock-free access of certain variables. Most of these memory barriers have been removed and replaced with "interlocked" loads/stores so that any such accesses would continue to be correct under ARM64, which has weaker consistency guarantees than x86/x64. The new `FspInterlocked*` calls are implemented in `inc/winfsp/fsctl.h` and are used by both kernel and user mode code. == Samples