alloc pages: enable preemption early

This code moves spin_unlock() and rcu_unlock_domain() earlier in the
code just to decrease time we spent with preemption disabled. Proper
fix is to replace spinlocks with mutexes, but mutexes are not
implemented yet.

With this patch enabled, allocation huge number of pages (e.g. 1GB of
RAM) does not leads to problems with latency in time-critical
domains.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Message-Id: <20210223023428.757694-11-volodymyr_babchuk@epam.com>
76 jobs for patchew/20210223023428.757694-1-volodymyr_babchuk@epam.com in 100 minutes and 43 seconds (queued for 3 seconds)
latest
Status Name Job ID Coverage
  Build
passed alpine-3.12-arm64-rootfs-export #1048475438
arm64

00:00:36

failed alpine-3.12-clang #1048475428
x86_64 allowed to fail

00:03:47

failed alpine-3.12-clang-debug #1048475429
x86_64 allowed to fail

00:03:14

failed alpine-3.12-gcc #1048475426
x86_64 allowed to fail

00:04:07

passed alpine-3.12-gcc-arm64 #1048475436
arm64

00:08:11

failed alpine-3.12-gcc-debug #1048475427
x86_64 allowed to fail

00:03:37

passed alpine-3.12-gcc-debug-arm64 #1048475437
arm64

00:05:38

passed archlinux-gcc #1048475366
x86_64

00:17:29

passed archlinux-gcc-debug #1048475367
x86_64

00:17:20

passed centos-7-2-gcc #1048475368
x86_64

00:09:12

passed centos-7-2-gcc-debug #1048475369
x86_64

00:09:23

passed centos-7-gcc #1048475370
x86_64

00:10:42

passed centos-7-gcc-debug #1048475371
x86_64

00:08:45

passed debian-jessie-32-clang #1048475379
x86_32

00:02:37

passed debian-jessie-32-clang-debug #1048475380
x86_32

00:01:31

passed debian-jessie-32-gcc #1048475381
x86_32

00:04:04

passed debian-jessie-32-gcc-debug #1048475382
x86_32

00:04:39

passed debian-jessie-clang #1048475373
x86_64

00:06:17

passed debian-jessie-clang-debug #1048475376
x86_64

00:06:35

passed debian-jessie-gcc #1048475377
x86_64

00:10:30

passed debian-jessie-gcc-debug #1048475378
x86_64

00:09:49

passed debian-stretch-32-clang #1048475389
x86_32

00:07:53

passed debian-stretch-32-clang-debug #1048475390
x86_32

00:05:56

passed debian-stretch-32-gcc #1048475391
x86_32

00:09:21

passed debian-stretch-32-gcc-debug #1048475393
x86_32

00:06:50

passed debian-stretch-clang #1048475383
x86_64

00:12:02

passed debian-stretch-clang-8 #1048475385
x86_64

00:16:18

passed debian-stretch-clang-8-debug #1048475386
x86_64

00:11:42

passed debian-stretch-clang-debug #1048475384
x86_64

00:10:52

passed debian-stretch-gcc #1048475387
x86_64

00:12:23

passed debian-stretch-gcc-debug #1048475388
x86_64

00:11:37

passed debian-unstable-32-clang #1048475402
x86_32

00:07:49

passed debian-unstable-32-clang-debug #1048475403
x86_32

00:08:01

passed debian-unstable-32-gcc #1048475404
x86_32

00:09:21

passed debian-unstable-32-gcc-debug #1048475405
x86_32

00:06:34

passed debian-unstable-clang #1048475394
x86_64

00:12:56

passed debian-unstable-clang-8 #1048475396
x86_64

00:12:59

passed debian-unstable-clang-8-debug #1048475397
x86_64

00:13:29

passed debian-unstable-clang-debug #1048475395
x86_64

00:12:14

passed debian-unstable-gcc #1048475398
x86_64

00:15:52

passed debian-unstable-gcc-arm64 #1048475430
arm64

00:07:42

passed debian-unstable-gcc-arm64-randconfig #1048475433
arm64

00:07:39

passed debian-unstable-gcc-debug #1048475399
x86_64

00:11:29

passed debian-unstable-gcc-debug-arm64 #1048475431
arm64

00:06:26

passed debian-unstable-gcc-debug-arm64-randconfig #1048475434
arm64

00:06:30

passed debian-unstable-gcc-debug-randconfig #1048475401
x86_64

00:11:26

passed debian-unstable-gcc-randconfig #1048475400
x86_64

00:14:21

passed fedora-gcc #1048475406
x86_64

00:15:41

passed fedora-gcc-debug #1048475407
x86_64

00:17:37

passed kernel-5.9.9-arm64-export #1048475439
arm64

00:00:26

passed opensuse-leap-clang #1048475422
x86_64

00:18:16

passed opensuse-leap-clang-debug #1048475423
x86_64

00:15:17

passed opensuse-leap-gcc #1048475424
x86_64

00:14:05

passed opensuse-leap-gcc-debug #1048475425
x86_64

00:13:26

passed qemu-system-aarch64-5.2.0-arm64-export #1048475440
arm64

00:00:29

passed ubuntu-bionic-clang #1048475414
x86_64

00:11:57

passed ubuntu-bionic-clang-debug #1048475415
x86_64

00:11:19

passed ubuntu-bionic-gcc #1048475416
x86_64

00:13:47

passed ubuntu-bionic-gcc-debug #1048475417
x86_64

00:12:16

passed ubuntu-focal-clang #1048475420
x86_64

00:13:57

passed ubuntu-focal-clang-debug #1048475421
x86_64

00:13:53

passed ubuntu-focal-gcc #1048475418
x86_64

00:14:18

passed ubuntu-focal-gcc-debug #1048475419
x86_64

00:15:05

passed ubuntu-trusty-gcc #1048475408
x86_64

00:08:07

passed ubuntu-trusty-gcc-debug #1048475409
x86_64

00:07:47

passed ubuntu-xenial-clang #1048475410
x86_64

00:13:40

passed ubuntu-xenial-clang-debug #1048475411
x86_64

00:10:06

passed ubuntu-xenial-gcc #1048475412
x86_64

00:14:04

passed ubuntu-xenial-gcc-debug #1048475413
x86_64

00:11:31

 
  Test
passed build-each-commit-gcc #1048475441
x86_64

00:00:14

failed qemu-alpine-arm64-gcc #1048475443
arm64

00:13:50

failed qemu-smoke-arm64-gcc #1048475444
arm64

00:01:08

failed qemu-smoke-x86-64-clang #1048475446
x86_64

00:01:13

failed qemu-smoke-x86-64-clang-pvh #1048475448
x86_64

00:01:11

failed qemu-smoke-x86-64-gcc #1048475445
x86_64

00:02:05

failed qemu-smoke-x86-64-gcc-pvh #1048475447
x86_64

00:01:20

 
Name Stage Failure
failed
alpine-3.12-gcc Build
make: *** [Makefile:140: install-tools] Error 2
Uploading artifacts for failed job
Uploading artifacts...
WARNING: binaries/: no matching files
WARNING: xen-config: no matching files
*.log: found 2 matching files and directories

Uploading artifacts as "archive" to coordinator... ok
id=1048475426 responseStatus=201 Created token=eTYswi6R
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
alpine-3.12-gcc-debug Build
make: *** [Makefile:140: install-tools] Error 2
Uploading artifacts for failed job
Uploading artifacts...
WARNING: binaries/: no matching files
WARNING: xen-config: no matching files
*.log: found 2 matching files and directories

Uploading artifacts as "archive" to coordinator... ok
id=1048475427 responseStatus=201 Created token=rq5fTx-x
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
alpine-3.12-clang Build
make: *** [Makefile:140: install-tools] Error 2
Uploading artifacts for failed job
Uploading artifacts...
WARNING: binaries/: no matching files
WARNING: xen-config: no matching files
*.log: found 2 matching files and directories

Uploading artifacts as "archive" to coordinator... ok
id=1048475428 responseStatus=201 Created token=JYkmKFKy
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
alpine-3.12-clang-debug Build
make: *** [Makefile:140: install-tools] Error 2
Uploading artifacts for failed job
Uploading artifacts...
WARNING: binaries/: no matching files
WARNING: xen-config: no matching files
*.log: found 2 matching files and directories

Uploading artifacts as "archive" to coordinator... ok
id=1048475429 responseStatus=201 Created token=tmm8FM8J
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
qemu-smoke-x86-64-clang Test
+ grep -q 'Test result: SUCCESS' smoke.serial
+ exit 1
Uploading artifacts for failed job
Uploading artifacts...
smoke.serial: found 1 matching files and directories

*.log: found 3 matching files and directories

Uploading artifacts as "archive" to coordinator... ok
id=1048475446 responseStatus=201 Created token=KMSbR54w
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
qemu-smoke-x86-64-gcc-pvh Test
+ grep -q 'Test result: SUCCESS' smoke.serial
+ exit 1
Uploading artifacts for failed job
Uploading artifacts...
smoke.serial: found 1 matching files and directories

*.log: found 3 matching files and directories

Uploading artifacts as "archive" to coordinator... ok
id=1048475447 responseStatus=201 Created token=kd5XeQWs
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
qemu-smoke-x86-64-clang-pvh Test
+ grep -q 'Test result: SUCCESS' smoke.serial
+ exit 1
Uploading artifacts for failed job
Uploading artifacts...
smoke.serial: found 1 matching files and directories

*.log: found 3 matching files and directories

Uploading artifacts as "archive" to coordinator... ok
id=1048475448 responseStatus=201 Created token=XNyAsuHy
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
qemu-smoke-x86-64-gcc Test
+ grep -q 'Test result: SUCCESS' smoke.serial
+ exit 1
Uploading artifacts for failed job
Uploading artifacts...
smoke.serial: found 1 matching files and directories

*.log: found 3 matching files and directories

Uploading artifacts as "archive" to coordinator... ok
id=1048475445 responseStatus=201 Created token=U5sidPUp
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
qemu-alpine-arm64-gcc Test
(XEN) p2m.c:1917: d0v0: Failed to walk page-table va 0xffff617a1dde06cf
(XEN) p2m.c:1917: d0v0: Failed to walk page-table va 0xffff617a1dde06cf
(XEN) p2m.c:1917: d0v0: Failed to walk page-table va 0xffff617a1dde06c0
(XEN) p2m.c:1917: d0v0: Failed to walk page-table va 0xffff617a1dde06cf
(XEN) p2m.c:1917: d0v0: Failed to walk page-table va 0xffff617a1dde06cf
(XEN) p2m.c:1917: d0v0: Failed to walk page-table va 0xffff617a1dde06c0
(XEN) p2m.c:1917: d0v0: Failed to walk page-table va 0xffff617a1dde06cf
(XEN) p2m.c:1917: d0v0: Failed to walk page-table va 0xffff617a1dde06cf
(XEN) p2m.c:1917: d0v0: Failed to walk
Job's log exceeded limit of 4194304 bytes.
failed
qemu-smoke-arm64-gcc Test
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) CPU0: Unexpected Trap: Data Abort
(XEN) ****************************************
(XEN)
(XEN) Reboot in five seconds...
+ set -e
+ grep -q '^BusyBox' smoke.serial
+ exit 1