Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp1854460ybf; Sun, 1 Mar 2020 19:58:16 -0800 (PST) X-Google-Smtp-Source: APXvYqxCfMXdL9A0Fis0ftbrm6VijxJnJrwwMYhssgWAVjFBYKRLNuLqlJxNjvtmRGHG6xa8EFzq X-Received: by 2002:a05:6830:18c9:: with SMTP id v9mr11906941ote.148.1583121496288; Sun, 01 Mar 2020 19:58:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583121496; cv=none; d=google.com; s=arc-20160816; b=wezfuS+CArmpYIR4SxTFPtEw4EGltkPe5TAIBKpvpiHUWrDeDEkoP7AY7uD6//Vir2 yj7zWXE4ZXpMLtgGRVYY/i3mqjkfGih6x9011Btg7FMwKfAjK7IIyF/pog2bp+s8Qqge 1NlUWVtSIRzoigght2t8bjT0iZ4kWFUUFX76i6aG8ylDXtP0ylcC1wdP/ox7iqV0x6SG aTZvx7V2ayS7bA4PIi2+roA0/33oXr88oDhqaO9igBFDaU8prJ2LZkqIEXCHNRb+WJTh PkSOcq8B1AhF4ppQzrGXCu7uC0vpb1xFHzL+D/aRpvc3DloBOKqwATkaUjnwDdbD9c9Y drwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:mime-version:user-agent:date:message-id :subject:from:to; bh=Xz0zAHX/1YmmfgyV3+u8BmQCaZrSVP6AIDdF5Zz7up8=; b=tygP57NOcflPkDzSsjGpGcvAo7JdUW3UthtJMbZtaK0m+vCFUJchHUqzTKsYCgmgQr gXtkgM1CzQHehAutVW+6kmxjhXPfoANJNtUKAz+jeL+1vwD42JmT9yxa4hCV2tIzdM7Q SaChaD1M+K5Q2xCWETK2r1gU2o0NAcCpC8hjEeARvKBuyO3NZ9y4saODGXLDghMarOjo 9LstDpnEDpyony4a5ijb3z1lnQ8YeDv7w2cfXVmCntgxVGw9nMCrB1I8sUsstXnOHvDu ny5hNijv3ialnm7ztbPVpgpXdYVCz/e4v2rQ/wds/ILLEAwo1BE9O1dByX577lncb6j9 GMcA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d196si5660909oig.268.2020.03.01.19.57.51; Sun, 01 Mar 2020 19:58:16 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726872AbgCBD44 (ORCPT + 99 others); Sun, 1 Mar 2020 22:56:56 -0500 Received: from mail1.windriver.com ([147.11.146.13]:52632 "EHLO mail1.windriver.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726758AbgCBD44 (ORCPT ); Sun, 1 Mar 2020 22:56:56 -0500 Received: from ALA-HCA.corp.ad.wrs.com (ala-hca.corp.ad.wrs.com [147.11.189.40]) by mail1.windriver.com (8.15.2/8.15.2) with ESMTPS id 0223towc025562 (version=TLSv1 cipher=AES256-SHA bits=256 verify=FAIL); Sun, 1 Mar 2020 19:55:50 -0800 (PST) Received: from [128.224.162.175] (128.224.162.175) by ALA-HCA.corp.ad.wrs.com (147.11.189.50) with Microsoft SMTP Server (TLS) id 14.3.487.0; Sun, 1 Mar 2020 19:55:49 -0800 To: Christoph Hellwig , , Jens Axboe , , , , , , , , , , He Zhe From: He Zhe Subject: disk revalidation updates and OOM Message-ID: <93b395e6-5c3f-0157-9572-af0f9094dbd7@windriver.com> Date: Mon, 2 Mar 2020 11:55:44 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Content-Language: en-US X-Originating-IP: [128.224.162.175] Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Since the following commit https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?h=for-5.5/disk-revalidate&id=6917d0689993f46d97d40dd66c601d0fd5b1dbdd until now(v5.6-rc4), If we start udisksd service of systemd(v244), systemd-udevd will scan /dev/hdc (the cdrom device created by default in qemu(v4.2.0)). systemd-udevd will endlessly run and cause OOM. It works well by reverting the following series of commits. 979c690d block: move clearing bd_invalidated into check_disk_size_change f0b870d block: remove (__)blkdev_reread_part as an exported API 142fe8f block: fix bdev_disk_changed for non-partitioned devices a1548b6 block: move rescan_partitions to fs/block_dev.c 6917d06 block: merge invalidate_partitions into rescan_partitions I found the number of some block events increase thousands per second. root@qemux86:~# perf top -e block:* 9 block:block_touch_buffer 2 block:block_dirty_buffer 0 block:block_rq_requeue 307K block:block_rq_complete 174K block:block_rq_insert 174K block:block_rq_issue 0 block:block_bio_bounce 0 block:block_bio_complete 2 block:block_bio_backmerge 0 block:block_bio_frontmerge 9 block:block_bio_queue 7 block:block_getrq 0 block:block_sleeprq 4 block:block_plug 4 block:block_unplug 0 block:block_split 0 block:block_bio_remap 0 block:block_rq_remap Here is the strace log from systemd-udevd. It repeats the following actions endlessly. epoll_wait(3, [{EPOLLIN, {u32=6274288, u64=6274288}}], 2, -1) = 1                                                                            clock_gettime64(CLOCK_REALTIME, {tv_sec=1582858384, tv_nsec=264944457}) = 0                                                                  clock_gettime64(CLOCK_MONOTONIC, {tv_sec=146, tv_nsec=493809949}) = 0                                                                        clock_gettime64(CLOCK_BOOTTIME, {tv_sec=146, tv_nsec=502760142}) = 0                                                                         recvmsg(14, {msg_name={sa_family=AF_NETLINK, nl_pid=-206275536, nl_groups=00000000}, msg_namelen=128->12, msg_iov=[{iov_base={{len=1969383786 getrandom("\x05\xca\xeb\xf4\x3f\x01\xb8\x0f\x7c\x89\xf9\x4b\x46\x73\x9b\xd5", 16, GRND_NONBLOCK) = 16                                        clock_gettime64(CLOCK_MONOTONIC, {tv_sec=146, tv_nsec=613235420}) = 0                                                                        openat(AT_FDCWD, "/dev/hdc", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC) = 6                                                       flock(6, LOCK_SH|LOCK_NB)               = 0                                                                                                  openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:01.1/ide1/1.0/block/hdc/uevent", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 15                      fstat64(15, {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0                                                                                   fstat64(15, {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0                                                                                   read(15, "MAJOR=22\nMINOR=0\nDEVNAME=hdc\nDEV"..., 4096) = 42 read(15, "", 4096)                      = 0 close(15)                               = 0 openat(AT_FDCWD, "/run/udev/data/b22:0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 15 fstat64(15, {st_mode=S_IFREG|0644, st_size=34, ...}) = 0 fstat64(15, {st_mode=S_IFREG|0644, st_size=34, ...}) = 0 read(15, "I:4680519\nE:ID_FS_TYPE=\nG:system"..., 4096) = 34 read(15, "", 4096)                      = 0 close(15)                               = 0 getrandom("\x22\xda\x6d\x9d\x97\x44\xcc\x2d\x82\x52\x00\xb4\x7b\x75\x8d\x6a", 16, GRND_NONBLOCK) = 16 openat(AT_FDCWD, "/proc/cmdline", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 15 fstat64(15, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 read(15, "root=/dev/vda rw  console=ttyS0 "..., 1024) = 118 ioctl(15, TCGETS, 0xbfb8b7ec)           = -1 ENOTTY (Inappropriate ioctl for device) read(15, "", 1024)                      = 0 close(15)                               = 0 openat(AT_FDCWD, "/proc/cmdline", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 15 fstat64(15, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 read(15, "root=/dev/vda rw  console=ttyS0 "..., 1024) = 118 ioctl(15, TCGETS, 0xbfb8b7ec)           = -1 ENOTTY (Inappropriate ioctl for device) read(15, "", 1024)                      = 0 close(15)                               = 0 openat(AT_FDCWD, "/", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 openat(15, "sys", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 16 fstat64(16, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0 close(15)                               = 0 openat(16, "devices", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 fstat64(15, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(16)                               = 0 openat(15, "pci0000:00", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 16 fstat64(16, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(15)                               = 0 openat(16, "0000:00:01.1", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 fstat64(15, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(16)                               = 0 openat(15, "ide1", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 16 fstat64(16, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(15)                               = 0 openat(16, "1.0", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 fstat64(15, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(16)                               = 0 openat(15, "block", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 16 fstat64(16, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(15)                               = 0 close(16)                               = 0 access("/sys/devices/pci0000:00/0000:00:01.1/ide1/1.0/block/uevent", F_OK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 openat(15, "sys", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 16 fstat64(16, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0 close(15)                               = 0 openat(16, "devices", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 fstat64(15, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(16)                               = 0 openat(15, "pci0000:00", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 16 fstat64(16, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(15)                               = 0 openat(16, "0000:00:01.1", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 fstat64(15, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(16)                               = 0 openat(15, "ide1", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 16 fstat64(16, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(15)                               = 0 openat(16, "1.0", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 fstat64(15, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(16)                               = 0 close(15)                               = 0 access("/sys/devices/pci0000:00/0000:00:01.1/ide1/1.0/uevent", F_OK) = 0 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:01.1/ide1/1.0/uevent", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 15 fstat64(15, {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0 fstat64(15, {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0 read(15, "DRIVER=ide-cdrom\nMEDIA=cdrom\nDRI"..., 4096) = 64 read(15, "", 4096)                      = 0 close(15)                               = 0 readlinkat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:01.1/ide1/1.0/subsystem", "../../../../../bus/ide", 4096) = 22 openat(AT_FDCWD, "/run/udev/data/+ide:1.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/run/udev/data/+ide:1.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/run/udev/data/+ide:1.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/run/udev/data/+ide:1.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/run/udev/data/+ide:1.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/run/udev/data/+ide:1.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/run/udev/data/+ide:1.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 openat(15, "sys", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 16 fstat64(16, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0 close(15)                               = 0 openat(16, "devices", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 fstat64(15, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(16)                               = 0 openat(15, "pci0000:00", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 16 fstat64(16, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(15)                               = 0 openat(16, "0000:00:01.1", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 fstat64(15, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(16)                               = 0 openat(15, "ide1", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 16 fstat64(16, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(15)                               = 0 close(16)                               = 0 access("/sys/devices/pci0000:00/0000:00:01.1/ide1/uevent", F_OK) = 0 readlinkat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:01.1/ide1/subsystem", 0x5f5b30, 4096) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 openat(15, "sys", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 16 fstat64(16, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0 close(15)                               = 0 openat(16, "devices", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 fstat64(15, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(16)                               = 0 openat(15, "pci0000:00", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 16 fstat64(16, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(15)                               = 0 openat(16, "0000:00:01.1", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 fstat64(15, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(16)                               = 0 close(15)                               = 0 access("/sys/devices/pci0000:00/0000:00:01.1/uevent", F_OK) = 0 readlinkat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:01.1/subsystem", "../../../bus/pci", 4096) = 16 openat(AT_FDCWD, "/", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 openat(15, "sys", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 16 fstat64(16, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0 close(15)                               = 0 openat(16, "devices", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 fstat64(15, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(16)                               = 0 openat(15, "pci0000:00", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 16 fstat64(16, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(15)                               = 0 close(16)                               = 0 access("/sys/devices/pci0000:00/uevent", F_OK) = 0 readlinkat(AT_FDCWD, "/sys/devices/pci0000:00/subsystem", 0x5f5b30, 4096) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15                                                                 openat(15, "sys", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 16 fstat64(16, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0 close(15)                               = 0 openat(16, "devices", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 fstat64(15, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 close(16)                               = 0 close(15)                               = 0 access("/sys/devices/uevent", F_OK)     = -1 ENOENT (No such file or directory) readlinkat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:01.1/ide1/1.0/block/hdc/driver", 0x5f5b30, 4096) = -1 ENOENT (No such file or director) readlinkat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:01.1/ide1/1.0/driver", "../../../../../bus/ide/drivers/i"..., 4096) = 40 readlinkat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:01.1/ide1/driver", 0x5f5b30, 4096) = -1 ENOENT (No such file or directory) readlinkat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:01.1/driver", "../../../bus/pci/drivers/PIIX_ID"..., 4096) = 33 readlinkat(AT_FDCWD, "/sys/devices/pci0000:00/driver", 0x5f5b30, 4096) = -1 ENOENT (No such file or directory) lstat64("/dev/hdc", {st_mode=S_IFBLK|0660, st_rdev=makedev(0x16, 0), ...}) = 0 utimensat_time64(AT_FDCWD, "/dev/hdc", NULL, 0) = 0 lstat64("/dev/block/22:0", {st_mode=S_IFLNK|0777, st_size=6, ...}) = 0 readlinkat(AT_FDCWD, "/dev/block/22:0", "../hdc", 4096) = 6 utimensat_time64(AT_FDCWD, "/dev/block/22:0", NULL, AT_SYMLINK_NOFOLLOW) = 0 stat64("/run/udev/tags/systemd", {st_mode=S_IFDIR|0755, st_size=720, ...}) = 0 openat(AT_FDCWD, "/run/udev/tags/systemd/b22:0", O_RDONLY|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 15 fstat64(15, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 utimensat_time64(AT_FDCWD, "/proc/self/fd/15", NULL, 0) = 0 close(15)                               = 0 stat64("/run/udev/data", {st_mode=S_IFDIR|0755, st_size=4180, ...}) = 0 umask(077)                              = 022 getpid()                                = 404 clock_gettime64(CLOCK_MONOTONIC, {tv_sec=147, tv_nsec=105469823}) = 0 openat(AT_FDCWD, "/run/udev/data/.#b22:03qtXsM", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE|O_CLOEXEC, 0600) = 15 umask(022)                              = 077 fcntl64(15, F_GETFL)                    = 0x8002 (flags O_RDWR|O_LARGEFILE) fchmod(15, 0644)                        = 0 fstat64(15, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 write(15, "I:4680519\nE:ID_FS_TYPE=\nG:system"..., 34) = 34 rename("/run/udev/data/.#b22:03qtXsM", "/run/udev/data/b22:0") = 0 close(15)                               = 0 close(6)                                = 0 sendmsg(14, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=0x000002}, msg_namelen=12, msg_iov=[{iov_base={{len=1969383788, type=0x65648 write(7, "", 0)                         = 0 epoll_wait(3, [{EPOLLIN, {u32=6274288, u64=6274288}}], 2, -1) = 1 Thanks, Zhe