From owner-freebsd-fs@freebsd.org Sun May 5 19:18:54 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BFE541592664 for ; Sun, 5 May 2019 19:18:54 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id 57FB86DA76 for ; Sun, 5 May 2019 19:18:54 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id 18D3B1592661; Sun, 5 May 2019 19:18:54 +0000 (UTC) Delivered-To: fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EAB3A1592660 for ; Sun, 5 May 2019 19:18:53 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.ysv.freebsd.org (mxrelay.ysv.freebsd.org [IPv6:2001:1900:2254:206a::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.ysv.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 886BE6DA72 for ; Sun, 5 May 2019 19:18:53 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.ysv.freebsd.org (Postfix) with ESMTPS id A6CE6C0F6 for ; Sun, 5 May 2019 19:18:52 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id x45JIqVv035908 for ; Sun, 5 May 2019 19:18:52 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id x45JIqLS035907 for fs@FreeBSD.org; Sun, 5 May 2019 19:18:52 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: fs@FreeBSD.org Subject: [Bug 237397] 'zfs mount -a' mounts filesystems in incorrect order Date: Sun, 05 May 2019 19:18:52 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 12.0-STABLE X-Bugzilla-Keywords: regression X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: freebsd-bugzilla@umpquanet.com X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: fs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: attachments.created Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 May 2019 19:18:55 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D237397 --- Comment #3 from Jim Long --- Created attachment 204229 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D204229&action= =3Dedit truss output of 'zfs mount -a' showing incorrect mounting behaviour Another view of the behaviour: System running on ZFS: FreeBSD electron 12.0-STABLE FreeBSD 12.0-STABLE r346293 GENERIC amd64 # zfs mount electron/system/ROOT/default / electron/system/var /var electron/system/home /home electron/system/usr /usr electron/system/tmp /tmp electron/system/usr/local /usr/local Of the entire set of mountable filesystems (canmount !=3D off and mountpoin= t !=3D none), there are three filesystems not yet mounted. Those three mountpoints are /data, /data/backup, and /data/backup/jimsdesk: # zfs list -o canmount,mounted,mountpoint,name | egrep -vw '^[[:blank:]]*of= f' CANMOUNT MOUNTED MOUNTPOINT NAME on no none electron on no /data electron/data on no /data/backup electron/data/backup on no /data/backup/jimsdesk electron/data/backup/jimsdesk on no none electron/system on no none electron/system/ROOT on yes / electron/system/ROOT/default on yes /home electron/system/home on yes /tmp electron/system/tmp on yes /usr electron/system/usr on yes /usr/local electron/system/usr/local on yes /var electron/system/var Mountpoint /data does not exist in /: # find /data -ls | wc -l find: /data: No such file or directory 0 After manually mounting electron/data, /data is created, filesystem content appears, including an empty mountpoint directory for the next filesystem, electron/data/backup: # zfs mount electron/data # find /data | wc -l 8 # find /data/backup -ls 8 1 drwxr-xr-x 2 root wheel 2 May 3 12:55 /data/backup After mounting electron/data/backup, filesystem content is present under the mountpoint /data/backup, including an empty mountpoint directory for the ne= xt filesystem, electron/data/backup/jimsdesk: # find /data/backup | head -3000000 | wc -l 3000000 # find /data/backup/jimsdesk -ls=20 7904435 1 drwxr-xr-x 2 root wheel 2 Mar 5 16:48 /data/backup/jimsdesk After mounting electron/data/backup/jimsdesk, that filesystem content also appears under /data/backup/jimsdesk: # zfs mount electron/data/backup/jimsdesk # find /data/backup/jimsdesk | head -3000000 | wc -l 1481437 That's all excellent. Manual mounting works. Let's clean up: # zfs umount /data/backup/jimsdesk # find /data/backup/jimsdesk -ls 7904435 1 drwxr-xr-x 2 root wheel 2 Mar 5 16:48 /data/backup/jimsdesk # zfs umount /data/backup # find /data/backup -ls 8 1 drwxr-xr-x 2 root wheel 2 May 3 12:55 /data/backup # zfs umount /data=20 # find /data -ls 1488 1 drwxr-xr-x 2 root wheel 2 May 3 13:21 /data # rmdir /data # find /data -ls find: /data: No such file or directory Now we're back to our original mount state: everything mounted except /data /data/backup and /data/backup/jimsdesk: # zfs list -o canmount,mounted,mountpoint,name | egrep -vw '^[[:blank:]]*of= f' CANMOUNT MOUNTED MOUNTPOINT NAME on no none electron on no /data electron/data on no /data/backup electron/data/backup on no /data/backup/jimsdesk electron/data/backup/jimsdesk on no none electron/system on no none electron/system/ROOT on yes / electron/system/ROOT/default on yes /home electron/system/home on yes /tmp electron/system/tmp on yes /usr electron/system/usr on yes /usr/local electron/system/usr/local on yes /var electron/system/var Now let's 'truss zfs mount -a'. Instead of inlining all the output, it's attached. # truss zfs mount -a > truss-zfs-mount-a.out 2>&1 # egrep 'mount|mkdir' truss-zfs-mount-a.out=20 mkdir("/data/backup",0755) ERR#2 'No such file or directory' mkdir("/data",0755) =3D 0 (0x0) mkdir("/data/backup",0755) =3D 0 (0x0) nmount(0x801653000,8,0x0) =3D 0 (0x0) mkdir("/data",0755) ERR#17 'File exists' cannot mount '/data': failed to create mountpoint write(2,"cannot mount '/data': failed to "...,50) =3D 50 (0x32) nmount(0x801672000,8,0x0) =3D 0 (0x0) After 'zfs mount -a' only two of the expected three filesystems are mounted: electron : 13:35:05 /root# zfs list -o canmount,mounted,mountpoint,name | e= grep -vw '^[[:blank:]]*off' CANMOUNT MOUNTED MOUNTPOINT NAME on no none electron on no /data electron/data on yes /data/backup electron/data/backup on yes /data/backup/jimsdesk electron/data/backup/jimsdesk on no none electron/system on no none electron/system/ROOT on yes / electron/system/ROOT/default on yes /home electron/system/home on yes /tmp electron/system/tmp on yes /usr electron/system/usr on yes /usr/local electron/system/usr/local on yes /var electron/system/var electron/data is still not mounted, as per the 'cannot mount ...' error from 'zfs mount -a'. The truss output also shows that zfs was confused about the order in which to create mountpoints, and attempted to create the second-ti= er mountpoint (/data/backup) before creating the first-tier mountpoint (/data). The truss output file is attached to this PR. So, although the mode of failure varies a little, I hope that this truss fi= le will be sufficient for someone to look at and diagnose that 'zfs mount -a' = is not doing things correctly. Let me know if I can provide additional info. Thank you! Jim --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-fs@freebsd.org Sun May 5 21:00:56 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1B4D015951AA for ; Sun, 5 May 2019 21:00:56 +0000 (UTC) (envelope-from bugzilla-noreply@FreeBSD.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id CC94F71315 for ; Sun, 5 May 2019 21:00:55 +0000 (UTC) (envelope-from bugzilla-noreply@FreeBSD.org) Received: by mailman.ysv.freebsd.org (Postfix) id 90B0815951A6; Sun, 5 May 2019 21:00:55 +0000 (UTC) Delivered-To: fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5671E15951A3 for ; Sun, 5 May 2019 21:00:55 +0000 (UTC) (envelope-from bugzilla-noreply@FreeBSD.org) Received: from mxrelay.ysv.freebsd.org (mxrelay.ysv.freebsd.org [IPv6:2001:1900:2254:206a::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.ysv.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EC6D571309 for ; Sun, 5 May 2019 21:00:54 +0000 (UTC) (envelope-from bugzilla-noreply@FreeBSD.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.ysv.freebsd.org (Postfix) with ESMTPS id 2F664CFD2 for ; Sun, 5 May 2019 21:00:54 +0000 (UTC) (envelope-from bugzilla-noreply@FreeBSD.org) Received: from kenobi.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id x45L0sY4058598 for ; Sun, 5 May 2019 21:00:54 GMT (envelope-from bugzilla-noreply@FreeBSD.org) Received: (from bugzilla@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id x45L0s0F058590 for fs@FreeBSD.org; Sun, 5 May 2019 21:00:54 GMT (envelope-from bugzilla-noreply@FreeBSD.org) Message-Id: <201905052100.x45L0s0F058590@kenobi.freebsd.org> X-Authentication-Warning: kenobi.freebsd.org: bugzilla set sender to bugzilla-noreply@FreeBSD.org using -f From: bugzilla-noreply@FreeBSD.org To: fs@FreeBSD.org Subject: Problem reports for fs@FreeBSD.org that need special attention Date: Sun, 5 May 2019 21:00:54 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 May 2019 21:00:56 -0000 To view an individual PR, use: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=(Bug Id). The following is a listing of current problems submitted by FreeBSD users, which need special attention. These represent problem reports covering all versions including experimental development code and obsolete releases. Status | Bug Id | Description ------------+-----------+--------------------------------------------------- New | 203492 | mount_unionfs -o below causes panic Open | 144447 | [zfs] sharenfs fsunshare() & fsshare_main() non f Open | 211491 | System hangs after "Uptime" on reboot with ZFS Open | 221909 | [ZFS] Add a sysctl to toggle send_corrupt_data Open | 237067 | ZFS: Crash in vdev_dtl_reassess when using GELI w 5 problems total for which you should take action. From owner-freebsd-fs@freebsd.org Mon May 6 16:56:26 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 283D2158F941 for ; Mon, 6 May 2019 16:56:26 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id B864A77A19 for ; Mon, 6 May 2019 16:56:25 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id 752DC158F940; Mon, 6 May 2019 16:56:25 +0000 (UTC) Delivered-To: fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 63AAF158F93F for ; Mon, 6 May 2019 16:56:25 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.ysv.freebsd.org (mxrelay.ysv.freebsd.org [IPv6:2001:1900:2254:206a::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.ysv.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0440D77A17 for ; Mon, 6 May 2019 16:56:25 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.ysv.freebsd.org (Postfix) with ESMTPS id 2B9DB17AD9 for ; Mon, 6 May 2019 16:56:24 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id x46GuOAS012310 for ; Mon, 6 May 2019 16:56:24 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id x46GuOY5012309 for fs@FreeBSD.org; Mon, 6 May 2019 16:56:24 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: fs@FreeBSD.org Subject: [Bug 225337] z_teardown_inactive_lock held inordinately long Date: Mon, 06 May 2019 16:56:23 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 11.1-RELEASE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: swills@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: fs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 May 2019 16:56:26 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D225337 --- Comment #7 from Steve Wills --- (In reply to Andriy Gapon from comment #6) I'm not sure if this is what you're looking for, but I have procstat -kk output. It seems to vary, but I see these two: mi_switch+0xe2 sleepq_wait+0x2c _cv_wait+0xf3 arc_get_data_impl+0x2df arc_buf_alloc_impl+0x204 arc_alloc_buf+0x41 dbuf_read+0x54e dnode_hold_impl+0x1af dmu_bonus_hold+0x1d zfs_rezget+0x10b zfs_resume_fs+0x= 1a8 zfs_ioc_rollback+0xf0 zfsdev_ioctl+0x75e devfs_ioctl+0xc7 VOP_IOCTL_APV+0x56 vn_ioctl+0x161 devfs_ioctl_f+0x1f kern_ioctl+0x238=20 mi_switch+0xe2 sleepq_wait+0x2c _cv_wait+0xf3 arc_get_data_impl+0x2df arc_buf_alloc_impl+0x204 arc_alloc_buf+0x41 dbuf_read+0x54e __dbuf_hold_impl+0x579 dbuf_hold+0x7f dnode_hold_impl+0x134 dmu_bonus_hold+= 0x1d zfs_rezget+0x10b zfs_resume_fs+0x1a8 zfs_ioc_rollback+0xf0 zfsdev_ioctl+0x7= 5e devfs_ioctl+0xc7 VOP_IOCTL_APV+0x56 vn_ioctl+0x161 --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-fs@freebsd.org Mon May 6 20:28:58 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 730A6159503E for ; Mon, 6 May 2019 20:28:58 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id 06D8688759 for ; Mon, 6 May 2019 20:28:58 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id B8715159503D; Mon, 6 May 2019 20:28:57 +0000 (UTC) Delivered-To: fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A6003159503C for ; Mon, 6 May 2019 20:28:57 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.ysv.freebsd.org (mxrelay.ysv.freebsd.org [IPv6:2001:1900:2254:206a::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.ysv.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 41CD788756 for ; Mon, 6 May 2019 20:28:57 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.ysv.freebsd.org (Postfix) with ESMTPS id 806FC198AC for ; Mon, 6 May 2019 20:28:56 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id x46KSuFf067990 for ; Mon, 6 May 2019 20:28:56 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id x46KSuS6067989 for fs@FreeBSD.org; Mon, 6 May 2019 20:28:56 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: fs@FreeBSD.org Subject: [Bug 225337] z_teardown_inactive_lock held inordinately long Date: Mon, 06 May 2019 20:28:56 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 11.1-RELEASE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: avg@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: fs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 May 2019 20:28:58 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D225337 --- Comment #8 from Andriy Gapon --- (In reply to Steve Wills from comment #7) First of all, I am not 100% sure if this is it. It could be. It's likely. So, it looks like the lock is held because zfs_rezget -> ... -> arc_get_data_impl is waiting for something in the ARC state. Probably it's waiting for the ARC size to go below its limit (arc_is_overflowing()). So,= I would look at the ARC variables and what the ARC reclaim thread is doing. --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-fs@freebsd.org Tue May 7 00:50:17 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9AF9F1599E6B for ; Tue, 7 May 2019 00:50:17 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-QB1-obe.outbound.protection.outlook.com (mail-eopbgr660040.outbound.protection.outlook.com [40.107.66.40]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E24706A34F for ; Tue, 7 May 2019 00:50:11 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM (52.132.70.13) by YQBPR0101MB1652.CANPRD01.PROD.OUTLOOK.COM (52.132.66.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.11; Tue, 7 May 2019 00:50:10 +0000 Received: from YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM ([fe80::e92e:7851:66e9:3967]) by YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM ([fe80::e92e:7851:66e9:3967%7]) with mapi id 15.20.1856.012; Tue, 7 May 2019 00:50:10 +0000 From: Rick Macklem To: Peter Eriksson CC: "freebsd-fs@freebsd.org" Subject: patch to improve perf for handling exports of large numbers of file systems Thread-Topic: patch to improve perf for handling exports of large numbers of file systems Thread-Index: AQHVBGywsS7UeCSUjUWd1VaW2C8j6w== Date: Tue, 7 May 2019 00:50:10 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 28a0865a-b560-4fab-437f-08d6d285f52e x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(49563074)(7193020); SRVR:YQBPR0101MB1652; x-ms-traffictypediagnostic: YQBPR0101MB1652: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:534; x-forefront-prvs: 0030839EEE x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(136003)(346002)(376002)(39860400002)(396003)(189003)(199004)(81166006)(81156014)(14454004)(8676002)(68736007)(71190400001)(4326008)(53936002)(102836004)(8936002)(7696005)(6506007)(71200400001)(14444005)(256004)(6916009)(478600001)(486006)(25786009)(476003)(46003)(5660300002)(5024004)(305945005)(66946007)(66616009)(74482002)(66476007)(73956011)(86362001)(76116006)(9686003)(74316002)(2906002)(99286004)(316002)(6436002)(186003)(33656002)(52536014)(64756008)(66556008)(66446008)(786003)(99936001)(55016002); DIR:OUT; SFP:1101; SCL:1; SRVR:YQBPR0101MB1652; H:YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: uoguelph.ca does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 0qN/jL0VSdoAI5/BRHyjvt8b00o2MIpLmhtU5GkxP1UH7zdpvibkFuEnR8DEjShLTRCjhWERAHZGobd5I5MhYF++uLFgN1z9DFel3SeoUxAb7EaPuyWU7LpqpFcx31WiKMPk3z1GYUrQQQ7GxZLdJR7KrGYScvGoeL6Sc1opJPvNQG+OJPx+8Q+AYqsugDZk/Nn/lnxORxqwGRxE1cKqMYEHcVisJN5L+yVMs4ijrFcmtHJjZ1rcpcjf9Leowg2HefGNpoSWOAQzklSPiz+fbO9IlI9vc7/R8s1ZNNo5jUMUWVpb/enja7dxMgqbCFvK7GCCrdTRVek0FUBxa7ie1kL2siJhC6nrwKgGCHulv+peWCeM+qJNjSEVm3OTEqF9lHxB15BT0U+GXuBMcL6Jxx8QABhDV01Eiol+Ms8DZ6c= Content-Type: multipart/mixed; boundary="_002_YQBPR0101MB22608FE3367E1DBD64ED01E1DD310YQBPR0101MB2260_" MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-Network-Message-Id: 28a0865a-b560-4fab-437f-08d6d285f52e X-MS-Exchange-CrossTenant-originalarrivaltime: 07 May 2019 00:50:10.4127 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQBPR0101MB1652 X-Rspamd-Queue-Id: E24706A34F X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of rmacklem@uoguelph.ca designates 40.107.66.40 as permitted sender) smtp.mailfrom=rmacklem@uoguelph.ca X-Spamd-Result: default: False [-2.73 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; NEURAL_HAM_MEDIUM(-0.98)[-0.980,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; NEURAL_HAM_LONG(-0.99)[-0.989,0]; HAS_ATTACHMENT(0.00)[]; MIME_GOOD(-0.10)[multipart/mixed,text/plain]; DMARC_NA(0.00)[uoguelph.ca]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_NONE(0.00)[40.66.107.40.list.dnswl.org : 127.0.3.0]; NEURAL_HAM_SHORT(-0.45)[-0.446,0]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+]; RCVD_TLS_LAST(0.00)[] X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 May 2019 00:50:18 -0000 --_002_YQBPR0101MB22608FE3367E1DBD64ED01E1DD310YQBPR0101MB2260_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi, Peter has reported to me via email that updating exports when mountd receiv= es a SIGHUP takes about 16seconds. This isn't surprising, since he has 20,000= + file systems to export. The current code deletes all 20,000+ exports in the kernel and then re-expo= rts everything in the exports file while having the nfsd suspended (assuming th= e "-S" option is being used). It was designed decades ago when a system only had a few file systems, but sometimes many exported directories within a file sys= tem. The attached patch is a first draft (minimally tested) for the addition of = a "-I" option for mountd. When mountd is started with this "-I" option, it processes the = exports file(s) into the structures that mountd uses and then compares the old and = new structures, only doing unexport/re-export for the ones that have changed, when it receives a SIGHUP. At the moment, the algorithm for doing the comparison isn't efficient, but = at least it isn't doing a lot of system calls to unexport/re-export. (A simple chang= e from using a single linked list to a hash table of linked lists for the "= struct exportlist" would help the comparison algorithm a lot, but I wanted to hold off on that until what I h= ave has seen more testing, since it will make the patch even more complex.) I hope that Peter can test this (and anyone else willing to do so, please d= o since there are many variants within the exports file(s) and I might not th= ink of them all to test). The patch is "noisy", since it puts a bunch of debug stuff out via syslog()= . You can get rid of this by simply deleting the syslog(..); lines that are n= ot indented. Anyone who can test this, it would be appreciated, rick ps: Without "-I", the behaviour should not have changed. --_002_YQBPR0101MB22608FE3367E1DBD64ED01E1DD310YQBPR0101MB2260_ Content-Type: application/octet-stream; name="mountd-exp.patch" Content-Description: mountd-exp.patch Content-Disposition: attachment; filename="mountd-exp.patch"; size=23798; creation-date="Tue, 07 May 2019 00:44:23 GMT"; modification-date="Tue, 07 May 2019 00:44:23 GMT" Content-Transfer-Encoding: base64 LS0tIHVzci5zYmluL21vdW50ZC9tb3VudGQuYy5zYXYJMjAxOS0wNC0zMCAyMTo0ODoyMy4xNTU0 MTkwMDAgLTA0MDAKKysrIHVzci5zYmluL21vdW50ZC9tb3VudGQuYwkyMDE5LTA1LTA2IDIwOjE2 OjAwLjk4MTY3NDAwMCAtMDQwMApAQCAtMTE0LDEwICsxMTQsMTMgQEAgc3RydWN0IGRpcmxpc3Qg ewogc3RydWN0IGV4cG9ydGxpc3QgewogCXN0cnVjdCBkaXJsaXN0CSpleF9kaXJsOwogCXN0cnVj dCBkaXJsaXN0CSpleF9kZWZkaXI7CisJc3RydWN0IGdyb3VwbGlzdCAqZXhfZ3JwaGVhZDsKIAlp bnQJCWV4X2ZsYWc7CiAJZnNpZF90CQlleF9mczsKIAljaGFyCQkqZXhfZnNkaXI7CiAJY2hhcgkJ KmV4X2luZGV4ZmlsZTsKKwlzdHJ1Y3QgeHVjcmVkCWV4X2RlZmFub247CisJaW50CQlleF9kZWZl eGZsYWdzOwogCWludAkJZXhfbnVtc2VjZmxhdm9yczsKIAlpbnQJCWV4X3NlY2ZsYXZvcnNbTUFY U0VDRkxBVk9SU107CiAJaW50CQlleF9kZWZudW1zZWNmbGF2b3JzOwpAQCAtMTI3LDYgKzEzMCw5 IEBAIHN0cnVjdCBleHBvcnRsaXN0IHsKIH07CiAvKiBleF9mbGFnIGJpdHMgKi8KICNkZWZpbmUJ RVhfTElOS0VECTB4MQorI2RlZmluZQlFWF9ET05FCQkweDIKKworU0xJU1RfSEVBRChleHBvcnRs aXN0aGVhZCwgZXhwb3J0bGlzdCk7CiAKIHN0cnVjdCBuZXRtc2sgewogCXN0cnVjdCBzb2NrYWRk cl9zdG9yYWdlIG50X25ldDsKQEAgLTE0Myw2ICsxNDksOSBAQCBzdHJ1Y3QgZ3JvdXBsaXN0IHsK IAlpbnQgZ3JfdHlwZTsKIAl1bmlvbiBncm91cHR5cGVzIGdyX3B0cjsKIAlzdHJ1Y3QgZ3JvdXBs aXN0ICpncl9uZXh0OworCXN0cnVjdCB4dWNyZWQgZ3JfYW5vbjsKKwlpbnQgZ3JfZXhmbGFnczsK KwlpbnQgZ3JfZmxhZzsKIAlpbnQgZ3JfbnVtc2VjZmxhdm9yczsKIAlpbnQgZ3Jfc2VjZmxhdm9y c1tNQVhTRUNGTEFWT1JTXTsKIH07CkBAIC0xNTMsNiArMTYyLDkgQEAgc3RydWN0IGdyb3VwbGlz dCB7CiAjZGVmaW5lCUdUX0RFRkFVTFQJMHgzCiAjZGVmaW5lIEdUX0lHTk9SRQkweDUKIAorLyog R3JvdXAgZmxhZ3MgKi8KKyNkZWZpbmUJR1JfRk5ECQkweDEKKwogc3RydWN0IGhvc3RsaXN0IHsK IAlpbnQJCSBodF9mbGFnOwkvKiBVc2VzIERQX3h4IGJpdHMgKi8KIAlzdHJ1Y3QgZ3JvdXBsaXN0 ICpodF9ncnA7CkBAIC0xODUsNiArMTk3LDcgQEAgc3RhdGljIHZvaWQJY29tcGxldGVfc2Vydmlj ZShzdHJ1Y3QgbmV0Ywogc3RhdGljIHZvaWQJY2xlYXJvdXRfc2VydmljZSh2b2lkKTsKIHN0YXRp YyB2b2lkCWRlbF9tbGlzdChjaGFyICpob3N0cCwgY2hhciAqZGlycCk7CiBzdGF0aWMgc3RydWN0 IGRpcmxpc3QJKmRpcnBfc2VhcmNoKHN0cnVjdCBkaXJsaXN0ICosIGNoYXIgKik7CitzdGF0aWMg aW50CWRvX2V4cG9ydF9tb3VudChzdHJ1Y3QgZXhwb3J0bGlzdCAqLCBzdHJ1Y3Qgc3RhdGZzICop Owogc3RhdGljIGludAlkb19tb3VudChzdHJ1Y3QgZXhwb3J0bGlzdCAqLCBzdHJ1Y3QgZ3JvdXBs aXN0ICosIGludCwKIAkJICAgIHN0cnVjdCB4dWNyZWQgKiwgY2hhciAqLCBpbnQsIHN0cnVjdCBz dGF0ZnMgKik7CiBzdGF0aWMgaW50CWRvX29wdChjaGFyICoqLCBjaGFyICoqLCBzdHJ1Y3QgZXhw b3J0bGlzdCAqLApAQCAtMTk1LDcgKzIwOCwxNiBAQCBzdGF0aWMgdm9pZAlmcmVlX2RpcihzdHJ1 Y3QgZGlybGlzdCAqKTsKIHN0YXRpYyB2b2lkCWZyZWVfZXhwKHN0cnVjdCBleHBvcnRsaXN0ICop Owogc3RhdGljIHZvaWQJZnJlZV9ncnAoc3RydWN0IGdyb3VwbGlzdCAqKTsKIHN0YXRpYyB2b2lk CWZyZWVfaG9zdChzdHJ1Y3QgaG9zdGxpc3QgKik7Ci1zdGF0aWMgdm9pZAlnZXRfZXhwb3J0bGlz dCh2b2lkKTsKK3N0YXRpYyB2b2lkCWZyZWVfdjRyb290ZXhwKHZvaWQpOworc3RhdGljIHZvaWQJ Z2V0X2V4cG9ydGxpc3Rfb25lKGludCk7CitzdGF0aWMgdm9pZAlnZXRfZXhwb3J0bGlzdChpbnQg cGFzc25vKTsKK3N0YXRpYyB2b2lkCXJlYWRfZXhwb3J0ZmlsZShpbnQgcGFzc25vKTsKK3N0YXRp YyB2b2lkCWZyZWVfZXhwb3J0cyhzdHJ1Y3QgZXhwb3J0bGlzdGhlYWQgKik7CitzdGF0aWMgaW50 CWNvbXBhcmVfbm1vdW50X2V4cG9ydGxpc3Qoc3RydWN0IGlvdmVjICosIGludCwgY2hhciAqKTsK K3N0YXRpYyBpbnQJY29tcGFyZV9leHBvcnQoc3RydWN0IGV4cG9ydGxpc3QgKiwgc3RydWN0IGV4 cG9ydGxpc3QgKik7CitzdGF0aWMgaW50CWNvbXBhcmVfY3JlZChzdHJ1Y3QgeHVjcmVkICosIHN0 cnVjdCB4dWNyZWQgKik7CitzdGF0aWMgaW50CWNvbXBhcmVfc2VjZmxhdm9yKGludCAqLCBpbnQg KiwgaW50KTsKK3N0YXRpYyB2b2lkCWRlbGV0ZV9leHBvcnQoc3RydWN0IGlvdmVjICosIGludCwg c3RydWN0IHN0YXRmcyAqLCBjaGFyICopOwogc3RhdGljIGludAlnZXRfaG9zdChjaGFyICosIHN0 cnVjdCBncm91cGxpc3QgKiwgc3RydWN0IGdyb3VwbGlzdCAqKTsKIHN0YXRpYyBzdHJ1Y3QgaG9z dGxpc3QgKmdldF9odCh2b2lkKTsKIHN0YXRpYyBpbnQJZ2V0X2xpbmUodm9pZCk7CkBAIC0yMDQs NyArMjI2LDcgQEAgc3RhdGljIGludAlnZXRfbmV0KGNoYXIgKiwgc3RydWN0IG5ldG1zawogc3Rh dGljIHZvaWQJZ2V0ZXhwX2VycihzdHJ1Y3QgZXhwb3J0bGlzdCAqLCBzdHJ1Y3QgZ3JvdXBsaXN0 ICosIGNvbnN0IGNoYXIgKik7CiBzdGF0aWMgc3RydWN0IGdyb3VwbGlzdAkqZ2V0X2dycCh2b2lk KTsKIHN0YXRpYyB2b2lkCWhhbmdfZGlycChzdHJ1Y3QgZGlybGlzdCAqLCBzdHJ1Y3QgZ3JvdXBs aXN0ICosCi0JCQkJc3RydWN0IGV4cG9ydGxpc3QgKiwgaW50KTsKKwkJICAgIHN0cnVjdCBleHBv cnRsaXN0ICosIGludCwgc3RydWN0IHh1Y3JlZCAqLCBpbnQpOwogc3RhdGljIHZvaWQJaHVwaGFu ZGxlcihpbnQgc2lnKTsKIHN0YXRpYyBpbnQJbWFrZW1hc2soc3RydWN0IHNvY2thZGRyX3N0b3Jh Z2UgKnNzcCwgaW50IGJpdGxlbik7CiBzdGF0aWMgdm9pZAltbnRzcnYoc3RydWN0IHN2Y19yZXEg KiwgU1ZDWFBSVCAqKTsKQEAgLTIyNyw5ICsyNDksOSBAQCBzdGF0aWMgaW50CXhkcl9maHMoWERS ICosIGNhZGRyX3QpOwogc3RhdGljIGludAl4ZHJfbWxpc3QoWERSICosIGNhZGRyX3QpOwogc3Rh dGljIHZvaWQJdGVybWluYXRlKGludCk7CiAKLXN0YXRpYyBTTElTVF9IRUFEKCwgZXhwb3J0bGlz dCkgZXhwaGVhZCA9IFNMSVNUX0hFQURfSU5JVElBTElaRVIoZXhwaGVhZCk7Ci1zdGF0aWMgU0xJ U1RfSEVBRCgsIG1vdW50bGlzdCkgbWxoZWFkID0gU0xJU1RfSEVBRF9JTklUSUFMSVpFUihtbGhl YWQpOwotc3RhdGljIHN0cnVjdCBncm91cGxpc3QgKmdycGhlYWQ7CitzdGF0aWMgc3RydWN0IGV4 cG9ydGxpc3RoZWFkIGV4cGhlYWQgPSBTTElTVF9IRUFEX0lOSVRJQUxJWkVSKCZleHBoZWFkKTsK K3N0YXRpYyBzdHJ1Y3QgZXhwb3J0bGlzdGhlYWQgb2xkZXhwaGVhZDsKK3N0YXRpYyBTTElTVF9I RUFEKCwgbW91bnRsaXN0KSBtbGhlYWQgPSBTTElTVF9IRUFEX0lOSVRJQUxJWkVSKCZtbGhlYWQp Owogc3RhdGljIGNoYXIgKmV4bmFtZXNfZGVmYXVsdFsyXSA9IHsgX1BBVEhfRVhQT1JUUywgTlVM TCB9Owogc3RhdGljIGNoYXIgKipleG5hbWVzOwogc3RhdGljIGNoYXIgKipob3N0cyA9IE5VTEw7 CkBAIC0yNjAsNiArMjgyLDggQEAgc3RhdGljIGludCBoYXZlX3Y2ID0gMTsKIAogc3RhdGljIGlu dCB2NHJvb3RfcGhhc2UgPSAwOwogc3RhdGljIGNoYXIgdjRyb290X2RpcnBhdGhbUEFUSF9NQVgg KyAxXTsKK3N0YXRpYyBzdHJ1Y3QgZXhwb3J0bGlzdCAqdjRyb290X2VwID0gTlVMTDsKK3N0YXRp YyBzdHJ1Y3QgZ3JvdXBsaXN0ICp2NHJvb3RfZ3JwID0gTlVMTDsKIHN0YXRpYyBpbnQgaGFzX3B1 YmxpY2ZoID0gMDsKIAogc3RhdGljIHN0cnVjdCBwaWRmaCAqcGZoID0gTlVMTDsKQEAgLTM2OCw5 ICszOTIsMTAgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJaW5fcG9ydF90IHN2Y3Bv cnQ7CiAJaW50IGMsIGssIHM7CiAJaW50IG1heHJlYyA9IFJQQ19NQVhEQVRBU0laRTsKLQlpbnQg YXR0ZW1wdF9jbnQsIHBvcnRfbGVuLCBwb3J0X3BvcywgcmV0OworCWludCBhdHRlbXB0X2NudCwg cGFzc25vLCBwb3J0X2xlbiwgcG9ydF9wb3MsIHJldDsKIAljaGFyICoqcG9ydF9saXN0OwogCisJ cGFzc25vID0gMDsKIAkvKiBDaGVjayB0aGF0IGFub3RoZXIgbW91bnRkIGlzbid0IGFscmVhZHkg cnVubmluZy4gKi8KIAlwZmggPSBwaWRmaWxlX29wZW4oX1BBVEhfTU9VTlREUElELCAwNjAwLCAm b3RoZXJwaWQpOwogCWlmIChwZmggPT0gTlVMTCkgewpAQCAtMzg1LDcgKzQxMCw3IEBAIG1haW4o aW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWVsc2UKIAkJY2xvc2Uocyk7CiAKLQl3aGlsZSAoKGMg PSBnZXRvcHQoYXJnYywgYXJndiwgIjJkZWg6bG5wOnJTIikpICE9IC0xKQorCXdoaWxlICgoYyA9 IGdldG9wdChhcmdjLCBhcmd2LCAiMmRlaDpJbG5wOnJTIikpICE9IC0xKQogCQlzd2l0Y2ggKGMp IHsKIAkJY2FzZSAnMic6CiAJCQlmb3JjZV92MiA9IDE7CkBAIC00MzcsNiArNDYyLDkgQEAgbWFp bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCWNhc2UgJ1MnOgogCQkJc3VzcGVuZF9uZnNkID0g MTsKIAkJCWJyZWFrOworCQljYXNlICdJJzoKKwkJCXBhc3NubyA9IDE7CisJCQlicmVhazsKIAkJ ZGVmYXVsdDoKIAkJCXVzYWdlKCk7CiAJCX0KQEAgLTQ0OSw3ICs0NzcsNiBAQCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKIAogCWFyZ2MgLT0gb3B0aW5kOwogCWFyZ3YgKz0gb3B0aW5kOwot CWdycGhlYWQgPSAoc3RydWN0IGdyb3VwbGlzdCAqKU5VTEw7CiAJaWYgKGFyZ2MgPiAwKQogCQll eG5hbWVzID0gYXJndjsKIAllbHNlCkBAIC00NTcsNyArNDg0LDcgQEAgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAJb3BlbmxvZygibW91bnRkIiwgTE9HX1BJRCwgTE9HX0RBRU1PTik7CiAJ aWYgKGRlYnVnKQogCQl3YXJueCgiZ2V0dGluZyBleHBvcnQgbGlzdCIpOwotCWdldF9leHBvcnRs aXN0KCk7CisJZ2V0X2V4cG9ydGxpc3QoMCk7CiAJaWYgKGRlYnVnKQogCQl3YXJueCgiZ2V0dGlu ZyBtb3VudCBsaXN0Iik7CiAJZ2V0X21vdW50bGlzdCgpOwpAQCAtNjI4LDcgKzY1NSw3IEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCS8qIEV4cGFuZCBzdmNfcnVuKCkgaGVyZSBzbyB0 aGF0IHdlIGNhbiBjYWxsIGdldF9leHBvcnRsaXN0KCkuICovCiAJZm9yICg7OykgewogCQlpZiAo Z290X3NpZ2h1cCkgewotCQkJZ2V0X2V4cG9ydGxpc3QoKTsKKwkJCWdldF9leHBvcnRsaXN0KHBh c3Nubyk7CiAJCQlnb3Rfc2lnaHVwID0gMDsKIAkJfQogCQlyZWFkZmRzID0gc3ZjX2Zkc2V0OwpA QCAtMTQxNiw3ICsxNDQzLDcgQEAgc3RhdGljIEZJTEUgKmV4cF9maWxlOwogICogR2V0IHRoZSBl eHBvcnQgbGlzdCBmcm9tIG9uZSwgY3VycmVudGx5IG9wZW4gZmlsZQogICovCiBzdGF0aWMgdm9p ZAotZ2V0X2V4cG9ydGxpc3Rfb25lKHZvaWQpCitnZXRfZXhwb3J0bGlzdF9vbmUoaW50IHBhc3Nu bykKIHsKIAlzdHJ1Y3QgZXhwb3J0bGlzdCAqZXA7CiAJc3RydWN0IGdyb3VwbGlzdCAqZ3JwLCAq dGdycDsKQEAgLTE2NTMsMTEgKzE2ODAsMTUgQEAgZ2V0X2V4cG9ydGxpc3Rfb25lKHZvaWQpCiAJ CSAqIExvb3AgdGhyb3VnaCBob3N0cywgcHVzaGluZyB0aGUgZXhwb3J0cyBpbnRvIHRoZSBrZXJu ZWwuCiAJCSAqIEFmdGVyIGxvb3AsIHRncnAgcG9pbnRzIHRvIHRoZSBzdGFydCBvZiB0aGUgbGlz dCBhbmQKIAkJICogZ3JwIHBvaW50cyB0byB0aGUgbGFzdCBlbnRyeSBpbiB0aGUgbGlzdC4KKwkJ ICogRG8gbm90IGRvIHRoZSBkb19tb3VudCgpIGZvciBwYXNzbm8gPT0gMSwgc2luY2UgdGhlCisJ CSAqIHNlY29uZCBwYXNzIHdpbGwgZG8gaXQsIGFzIHJlcXVpcmVkLgogCQkgKi8KIAkJZ3JwID0g dGdycDsKIAkJZG8gewotCQkJaWYgKGRvX21vdW50KGVwLCBncnAsIGV4ZmxhZ3MsICZhbm9uLCBk aXJwLCBkaXJwbGVuLAotCQkJICAgICZmc2IpKSB7CisJCQlncnAtPmdyX2V4ZmxhZ3MgPSBleGZs YWdzOworCQkJZ3JwLT5ncl9hbm9uID0gYW5vbjsKKwkJCWlmIChwYXNzbm8gIT0gMSAmJiBkb19t b3VudChlcCwgZ3JwLCBleGZsYWdzLCAmYW5vbiwKKwkJCSAgICBkaXJwLCBkaXJwbGVuLCAmZnNi KSkgewogCQkJCWdldGV4cF9lcnIoZXAsIHRncnAsIE5VTEwpOwogCQkJCWdvdG8gbmV4dGxpbmU7 CiAJCQl9CkBAIC0xNjY4LDE1ICsxNjk5LDI2IEBAIGdldF9leHBvcnRsaXN0X29uZSh2b2lkKQog CQkgKi8KIAkJaWYgKHY0cm9vdF9waGFzZSA+IDAgJiYgdjRyb290X3BoYXNlIDw9IDIpIHsKIAkJ CS8qCi0JCQkgKiBTaW5jZSB0aGVzZSBzdHJ1Y3R1cmVzIGFyZW4ndCB1c2VkIGJ5IG1vdW50ZCwK KwkJCSAqIFRoZXNlIHN0cnVjdHVyZXMgYXJlIHVzZWQgZm9yIHRoZSAiLUkiIHJlbG9hZCwKKwkJ CSAqIHNvIHNhdmUgdGhlbSBmb3IgdGhhdCBjYXNlLiAgT3RoZXJ3aXNlLCBqdXN0CiAJCQkgKiBm cmVlIHRoZW0gdXAgbm93LgogCQkJICovCi0JCQlpZiAoZXAgIT0gTlVMTCkKLQkJCQlmcmVlX2V4 cChlcCk7Ci0JCQl3aGlsZSAodGdycCAhPSBOVUxMKSB7Ci0JCQkJZ3JwID0gdGdycDsKLQkJCQl0 Z3JwID0gdGdycC0+Z3JfbmV4dDsKLQkJCQlmcmVlX2dycChncnApOworCQkJaWYgKHBhc3NubyA9 PSAxKSB7CisJCQkJaWYgKHY0cm9vdF9lcCAhPSBOVUxMKSB7CisJCQkJCWdldGV4cF9lcnIoZXAs IHRncnAsCisJCQkJCSAgICAibXVsdGlwbGUgVjQgbGluZXMiKTsKKwkJCQkJZ290byBuZXh0bGlu ZTsKKwkJCQl9CisJCQkJdjRyb290X2VwID0gZXA7CisJCQkJdjRyb290X2dycCA9IHRncnA7CisJ CQl9IGVsc2UgeworCQkJCWlmIChlcCAhPSBOVUxMKQorCQkJCQlmcmVlX2V4cChlcCk7CisJCQkJ d2hpbGUgKHRncnAgIT0gTlVMTCkgeworCQkJCQlncnAgPSB0Z3JwOworCQkJCQl0Z3JwID0gdGdy cC0+Z3JfbmV4dDsKKwkJCQkJZnJlZV9ncnAoZ3JwKTsKKwkJCQl9CiAJCQl9CiAJCQlnb3RvIG5l eHRsaW5lOwogCQl9CkBAIC0xNjg1LDEyICsxNzI3LDEyIEBAIGdldF9leHBvcnRsaXN0X29uZSh2 b2lkKQogCQkgKiBTdWNjZXNzLiBVcGRhdGUgdGhlIGRhdGEgc3RydWN0dXJlcy4KIAkJICovCiAJ CWlmIChoYXNfaG9zdCkgewotCQkJaGFuZ19kaXJwKGRpcmhlYWQsIHRncnAsIGVwLCBvcHRfZmxh Z3MpOwotCQkJZ3JwLT5ncl9uZXh0ID0gZ3JwaGVhZDsKLQkJCWdycGhlYWQgPSB0Z3JwOworCQkJ aGFuZ19kaXJwKGRpcmhlYWQsIHRncnAsIGVwLCBvcHRfZmxhZ3MsICZhbm9uLCBleGZsYWdzKTsK KwkJCWdycC0+Z3JfbmV4dCA9IGVwLT5leF9ncnBoZWFkOworCQkJZXAtPmV4X2dycGhlYWQgPSB0 Z3JwOwogCQl9IGVsc2UgewogCQkJaGFuZ19kaXJwKGRpcmhlYWQsIChzdHJ1Y3QgZ3JvdXBsaXN0 ICopTlVMTCwgZXAsCi0JCQkJb3B0X2ZsYWdzKTsKKwkJCQlvcHRfZmxhZ3MsICZhbm9uLCBleGZs YWdzKTsKIAkJCWZyZWVfZ3JwKGdycCk7CiAJCX0KIAkJZGlyaGVhZCA9IChzdHJ1Y3QgZGlybGlz dCAqKU5VTEw7CkBAIC0xNzEyLDQ1ICsxNzU0LDQzIEBAIG5leHRsaW5lOgogICogR2V0IHRoZSBl eHBvcnQgbGlzdCBmcm9tIGFsbCBzcGVjaWZpZWQgZmlsZXMKICAqLwogc3RhdGljIHZvaWQKLWdl dF9leHBvcnRsaXN0KHZvaWQpCitnZXRfZXhwb3J0bGlzdChpbnQgcGFzc25vKQogewotCXN0cnVj dCBleHBvcnRsaXN0ICplcCwgKmVwMjsKLQlzdHJ1Y3QgZ3JvdXBsaXN0ICpncnAsICp0Z3JwOwog CXN0cnVjdCBleHBvcnRfYXJncyBleHBvcnQ7CiAJc3RydWN0IGlvdmVjICppb3Y7CiAJc3RydWN0 IHN0YXRmcyAqZnNwLCAqbW50YnVmcDsKLQlzdHJ1Y3QgeHZmc2NvbmYgdmZjOwogCWNoYXIgZXJy bXNnWzI1NV07CiAJaW50IG51bSwgaTsKIAlpbnQgaW92bGVuOwotCWludCBkb25lOwogCXN0cnVj dCBuZnNleF9hcmdzIGVhcmdzOwogCi0JaWYgKHN1c3BlbmRfbmZzZCAhPSAwKQotCQkodm9pZClu ZnNzdmMoTkZTU1ZDX1NVU1BFTkRORlNELCBOVUxMKTsKK3N5c2xvZyhMT0dfRVJSLCAicGFzc25v PSVkIiwgcGFzc25vKTsKIAl2NHJvb3RfZGlycGF0aFswXSA9ICdcMCc7CisJZnJlZV92NHJvb3Rl eHAoKTsKKwlpZiAocGFzc25vID09IDEpIHsKKwkJLyoKKwkJICogU2F2ZSB0aGUgY3VycmVudCBs aXN0cyBhcyBvbGQgb25lcywgc28gdGhhdCB0aGUgbmV3IGxpc3RzCisJCSAqIGNhbiBiZSBjb21w YXJlZCB3aXRoIHRoZSBvbGQgb25lcyBpbiB0aGUgMm5kIHBhc3MuCisJCSAqLworCQlTTElTVF9G SVJTVCgmb2xkZXhwaGVhZCkgPSBTTElTVF9GSVJTVCgmZXhwaGVhZCk7CisJCVNMSVNUX0lOSVQo JmV4cGhlYWQpOworCisJCS8qIFJlYWQgdGhlIGV4cG9ydCBmaWxlKHMpIGFuZCBwcm9jZXNzIHRo ZW0gKi8KKwkJcmVhZF9leHBvcnRmaWxlKHBhc3Nubyk7CitzeXNsb2coTE9HX0VSUiwgInJlYWRl eHAxIik7CisJfSBlbHNlIHsKKwkJLyogSnVzdCBtYWtlIHRoZSBvbGQgbGlzdHMgZW1wdHkuICov CisJCVNMSVNUX0lOSVQoJm9sZGV4cGhlYWQpOworCX0KKwogCWJ6ZXJvKCZleHBvcnQsIHNpemVv ZihleHBvcnQpKTsKIAlleHBvcnQuZXhfZmxhZ3MgPSBNTlRfREVMRVhQT1JUOwogCWlvdiA9IE5V TEw7CiAJaW92bGVuID0gMDsKIAliemVybyhlcnJtc2csIHNpemVvZihlcnJtc2cpKTsKIAotCS8q Ci0JICogRmlyc3QsIGdldCByaWQgb2YgdGhlIG9sZCBsaXN0Ci0JICovCi0JU0xJU1RfRk9SRUFD SF9TQUZFKGVwLCAmZXhwaGVhZCwgZW50cmllcywgZXAyKSB7Ci0JCVNMSVNUX1JFTU9WRSgmZXhw aGVhZCwgZXAsIGV4cG9ydGxpc3QsIGVudHJpZXMpOwotCQlmcmVlX2V4cChlcCk7Ci0JfQotCi0J Z3JwID0gZ3JwaGVhZDsKLQl3aGlsZSAoZ3JwKSB7Ci0JCXRncnAgPSBncnA7Ci0JCWdycCA9IGdy cC0+Z3JfbmV4dDsKLQkJZnJlZV9ncnAodGdycCk7Ci0JfQotCWdycGhlYWQgPSAoc3RydWN0IGdy b3VwbGlzdCAqKU5VTEw7Ci0KKwlpZiAoc3VzcGVuZF9uZnNkICE9IDApCisJCSh2b2lkKW5mc3N2 YyhORlNTVkNfU1VTUEVORE5GU0QsIE5VTEwpOwogCS8qCiAJICogYW5kIHRoZSBvbGQgVjQgcm9v dCBkaXIuCiAJICovCkBAIC0xNzY1LDYyICsxODA1LDUyIEBAIGdldF9leHBvcnRsaXN0KHZvaWQp CiAJICovCiAJaGFzX3B1YmxpY2ZoID0gMDsKIAorCWJ1aWxkX2lvdmVjKCZpb3YsICZpb3ZsZW4s ICJmc3R5cGUiLCBOVUxMLCAwKTsKKwlidWlsZF9pb3ZlYygmaW92LCAmaW92bGVuLCAiZnNwYXRo IiwgTlVMTCwgMCk7CisJYnVpbGRfaW92ZWMoJmlvdiwgJmlvdmxlbiwgImZyb20iLCBOVUxMLCAw KTsKKwlidWlsZF9pb3ZlYygmaW92LCAmaW92bGVuLCAidXBkYXRlIiwgTlVMTCwgMCk7CisJYnVp bGRfaW92ZWMoJmlvdiwgJmlvdmxlbiwgImV4cG9ydCIsICZleHBvcnQsCisJICAgIHNpemVvZihl eHBvcnQpKTsKKwlidWlsZF9pb3ZlYygmaW92LCAmaW92bGVuLCAiZXJybXNnIiwgZXJybXNnLAor CSAgICBzaXplb2YoZXJybXNnKSk7CisKIAkvKgotCSAqIEFuZCBkZWxldGUgZXhwb3J0cyB0aGF0 IGFyZSBpbiB0aGUga2VybmVsIGZvciBhbGwgbG9jYWwKLQkgKiBmaWxlc3lzdGVtcy4KLQkgKiBY WFg6IFNob3VsZCBrbm93IGhvdyB0byBoYW5kbGUgYWxsIGxvY2FsIGV4cG9ydGFibGUgZmlsZXN5 c3RlbXMuCisJICogRm9yIHBhc3NubyA9PSAxLCBjb21wYXJlIHRoZSBvbGQgYW5kIG5ldyBsaXN0 cyB1cGRhdGluZyB0aGUga2VybmVsCisJICogZXhwb3J0cyBmb3IgYW55IGNhc2VzIHRoYXQgaGF2 ZSBjaGFuZ2VkLgorCSAqIFRoaXMgY2FsbCBpcyBkb2luZyB0aGUgc2Vjb25kIHBhc3MgdGhyb3Vn aCB0aGUgbGlzdHMuCisJICogSWYgaXQgZmFpbHMsIGZhbGwgYmFjayBvbiB0aGUgYnVsayByZWxv YWQuCiAJICovCi0JbnVtID0gZ2V0bW50aW5mbygmbW50YnVmcCwgTU5UX05PV0FJVCk7Ci0KLQlp ZiAobnVtID4gMCkgewotCQlidWlsZF9pb3ZlYygmaW92LCAmaW92bGVuLCAiZnN0eXBlIiwgTlVM TCwgMCk7Ci0JCWJ1aWxkX2lvdmVjKCZpb3YsICZpb3ZsZW4sICJmc3BhdGgiLCBOVUxMLCAwKTsK LQkJYnVpbGRfaW92ZWMoJmlvdiwgJmlvdmxlbiwgImZyb20iLCBOVUxMLCAwKTsKLQkJYnVpbGRf aW92ZWMoJmlvdiwgJmlvdmxlbiwgInVwZGF0ZSIsIE5VTEwsIDApOwotCQlidWlsZF9pb3ZlYygm aW92LCAmaW92bGVuLCAiZXhwb3J0IiwgJmV4cG9ydCwgc2l6ZW9mKGV4cG9ydCkpOwotCQlidWls ZF9pb3ZlYygmaW92LCAmaW92bGVuLCAiZXJybXNnIiwgZXJybXNnLCBzaXplb2YoZXJybXNnKSk7 Ci0JfQotCi0JZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKSB7Ci0JCWZzcCA9ICZtbnRidWZwW2ld OwotCQlpZiAoZ2V0dmZzYnluYW1lKGZzcC0+Zl9mc3R5cGVuYW1lLCAmdmZjKSAhPSAwKSB7Ci0J CQlzeXNsb2coTE9HX0VSUiwgImdldHZmc2J5bmFtZSgpIGZhaWxlZCBmb3IgJXMiLAotCQkJICAg IGZzcC0+Zl9mc3R5cGVuYW1lKTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0KKwlpZiAocGFzc25vID09 IDEgJiYgY29tcGFyZV9ubW91bnRfZXhwb3J0bGlzdChpb3YsIGlvdmxlbiwgZXJybXNnKSA9PQor CSAgICAwKSB7CitzeXNsb2coTE9HX0VSUiwgImNvbXBhcmVvayIpOworCQkvKiBGcmVlIHVwIHRo ZSBvbGQgbGlzdHMuICovCisJCWZyZWVfZXhwb3J0cygmb2xkZXhwaGVhZCk7CisJfSBlbHNlIHsK K3N5c2xvZyhMT0dfRVJSLCAiZG9pbiBwYXNzbm89MCIpOwogCQkvKgotCQkgKiBXZSBkbyBub3Qg bmVlZCB0byBkZWxldGUgImV4cG9ydCIgZmxhZyBmcm9tCi0JCSAqIGZpbGVzeXN0ZW1zIHRoYXQg ZG8gbm90IGhhdmUgaXQgc2V0LgorCQkgKiBGaXJzdCwgZ2V0IHJpZCBvZiB0aGUgb2xkIGxpc3Rz LgogCQkgKi8KLQkJaWYgKCEoZnNwLT5mX2ZsYWdzICYgTU5UX0VYUE9SVEVEKSkKLQkJICAgIGNv bnRpbnVlOworCQlmcmVlX2V4cG9ydHMoJmV4cGhlYWQpOworCQlmcmVlX2V4cG9ydHMoJm9sZGV4 cGhlYWQpOworCQlmcmVlX3Y0cm9vdGV4cCgpOworCiAJCS8qCi0JCSAqIERvIG5vdCBkZWxldGUg ZXhwb3J0IGZvciBuZXR3b3JrIGZpbGVzeXN0ZW0gYnkKLQkJICogcGFzc2luZyAiZXhwb3J0IiBh cmcgdG8gbm1vdW50KCkuCi0JCSAqIEl0IG9ubHkgbWFrZXMgc2Vuc2UgdG8gZG8gdGhpcyBmb3Ig bG9jYWwgZmlsZXN5c3RlbXMuCisJCSAqIEFuZCBkZWxldGUgZXhwb3J0cyB0aGF0IGFyZSBpbiB0 aGUga2VybmVsIGZvciBhbGwgbG9jYWwKKwkJICogZmlsZXN5c3RlbXMuCisJCSAqIFhYWDogU2hv dWxkIGtub3cgaG93IHRvIGhhbmRsZSBhbGwgbG9jYWwgZXhwb3J0YWJsZQorCQkgKiBmaWxlc3lz dGVtcy4KIAkJICovCi0JCWlmICh2ZmMudmZjX2ZsYWdzICYgVkZDRl9ORVRXT1JLKQotCQkJY29u dGludWU7Ci0KLQkJaW92WzFdLmlvdl9iYXNlID0gZnNwLT5mX2ZzdHlwZW5hbWU7Ci0JCWlvdlsx XS5pb3ZfbGVuID0gc3RybGVuKGZzcC0+Zl9mc3R5cGVuYW1lKSArIDE7Ci0JCWlvdlszXS5pb3Zf YmFzZSA9IGZzcC0+Zl9tbnRvbm5hbWU7Ci0JCWlvdlszXS5pb3ZfbGVuID0gc3RybGVuKGZzcC0+ Zl9tbnRvbm5hbWUpICsgMTsKLQkJaW92WzVdLmlvdl9iYXNlID0gZnNwLT5mX21udGZyb21uYW1l OwotCQlpb3ZbNV0uaW92X2xlbiA9IHN0cmxlbihmc3AtPmZfbW50ZnJvbW5hbWUpICsgMTsKLQkJ ZXJybXNnWzBdID0gJ1wwJzsKLQotCQkvKgotCQkgKiBFWERFViBpcyByZXR1cm5lZCB3aGVuIHBh dGggZXhpc3RzIGJ1dCBpcyBub3QgYQotCQkgKiBtb3VudCBwb2ludC4gIE1heSBoYXBwZW5zIGlm IHJhY2VkIHdpdGggdW5tb3VudC4KLQkJICovCi0JCWlmIChubW91bnQoaW92LCBpb3ZsZW4sIGZz cC0+Zl9mbGFncykgPCAwICYmCi0JCSAgICBlcnJubyAhPSBFTk9FTlQgJiYgZXJybm8gIT0gRU5P VFNVUCAmJiBlcnJubyAhPSBFWERFVikgewotCQkJc3lzbG9nKExPR19FUlIsCi0JCQkgICAgImNh bid0IGRlbGV0ZSBleHBvcnRzIGZvciAlczogJW0gJXMiLAotCQkJICAgIGZzcC0+Zl9tbnRvbm5h bWUsIGVycm1zZyk7CisJCW51bSA9IGdldG1udGluZm8oJm1udGJ1ZnAsIE1OVF9OT1dBSVQpOwor CQorCQlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKKwkJCWZzcCA9ICZtbnRidWZwW2ldOwor CQkJZGVsZXRlX2V4cG9ydChpb3YsIGlvdmxlbiwgZnNwLCBlcnJtc2cpOwogCQl9CisKKworCQkv KiBSZWFkIHRoZSBleHBvcnQgZmlsZShzKSBhbmQgcHJvY2VzcyB0aGVtICovCisJCXJlYWRfZXhw b3J0ZmlsZSgwKTsKK3N5c2xvZyhMT0dfRVJSLCAicmVhZGV4cDAiKTsKIAl9CiAKIAlpZiAoaW92 ICE9IE5VTEwpIHsKQEAgLTE4MzgsNiArMTg2OCwyNSBAQCBnZXRfZXhwb3J0bGlzdCh2b2lkKQog CX0KIAogCS8qCisJICogSWYgdGhlcmUgd2FzIG5vIHB1YmxpYyBmaCwgY2xlYXIgYW55IHByZXZp b3VzIG9uZSBzZXQuCisJICovCisJaWYgKGhhc19wdWJsaWNmaCA9PSAwKQorCQkodm9pZCkgbmZz c3ZjKE5GU1NWQ19OT1BVQkxJQ0ZILCBOVUxMKTsKKworCS8qIFJlc3VtZSB0aGUgbmZzZC4gSWYg dGhleSB3ZXJlbid0IHN1c3BlbmRlZCwgdGhpcyBpcyBoYXJtbGVzcy4gKi8KKwkodm9pZCluZnNz dmMoTkZTU1ZDX1JFU1VNRU5GU0QsIE5VTEwpOworc3lzbG9nKExPR19FUlIsICJlbyBnZXRfZXhw b3J0bGlzdCIpOworfQorCisvKgorICogUmVhZCB0aGUgZXhwb3J0cyBmaWxlKHMpIGFuZCBjYWxs IGdldF9leHBvcnRsaXN0X29uZSgpIGZvciBlYWNoIGxpbmUuCisgKi8KK3N0YXRpYyB2b2lkCity ZWFkX2V4cG9ydGZpbGUoaW50IHBhc3NubykKK3sKKwlpbnQgZG9uZSwgaTsKKworCS8qCiAJICog UmVhZCBpbiB0aGUgZXhwb3J0cyBmaWxlIGFuZCBidWlsZCB0aGUgbGlzdCwgY2FsbGluZwogCSAq IG5tb3VudCgpIGFzIHdlIGdvIGFsb25nIHRvIHB1c2ggdGhlIGV4cG9ydCBydWxlcyBpbnRvIHRo ZSBrZXJuZWwuCiAJICovCkBAIC0xODQ5LDcgKzE4OTgsNyBAQCBnZXRfZXhwb3J0bGlzdCh2b2lk KQogCQkJc3lzbG9nKExPR19XQVJOSU5HLCAiY2FuJ3Qgb3BlbiAlcyIsIGV4bmFtZXNbaV0pOwog CQkJY29udGludWU7CiAJCX0KLQkJZ2V0X2V4cG9ydGxpc3Rfb25lKCk7CisJCWdldF9leHBvcnRs aXN0X29uZShwYXNzbm8pOwogCQlmY2xvc2UoZXhwX2ZpbGUpOwogCQlkb25lKys7CiAJfQpAQCAt MTg1NywxNSArMTkwNiwyNjcgQEAgZ2V0X2V4cG9ydGxpc3Qodm9pZCkKIAkJc3lzbG9nKExPR19F UlIsICJjYW4ndCBvcGVuIGFueSBleHBvcnRzIGZpbGUiKTsKIAkJZXhpdCgyKTsKIAl9Cit9CisK Ky8qCisgKiBDb21wYXJlIHRoZSBleHBvcnQgbGlzdHMgYWdhaW5zdCB0aGUgb2xkIG9uZXMgYW5k IGRvIG5tb3VudCgpIG9wZXJhdGlvbnMKKyAqIGZvciBhbnkgY2FzZXMgdGhhdCBoYXZlIGNoYW5n ZWQuICBUaGlzIGF2b2lkcyBkb2luZyBubW91bnQoKSBmb3IgZW50cmllcworICogdGhhdCBoYXZl IG5vdCBjaGFuZ2VkLgorICogUmV0dXJuIDAgdXBvbiBzdWNjZXNzLCAxIG90aGVyd2lzZS4KKyAq Lworc3RhdGljIGludAorY29tcGFyZV9ubW91bnRfZXhwb3J0bGlzdChzdHJ1Y3QgaW92ZWMgKmlv diwgaW50IGlvdmxlbiwgY2hhciAqZXJybXNnKQoreworCXN0cnVjdCBleHBvcnRsaXN0ICplcCwg Km9lcDsKKwlzdHJ1Y3QgZ3JvdXBsaXN0ICpncnA7CisJc3RydWN0IHN0YXRmcyBmcywgb2ZzOwor CWludCByZXQ7CiAKIAkvKgotCSAqIElmIHRoZXJlIHdhcyBubyBwdWJsaWMgZmgsIGNsZWFyIGFu eSBwcmV2aW91cyBvbmUgc2V0LgorCSAqIExvb3AgdGhyb3VnaCB0aGUgY3VycmVudCBsaXN0IGFu ZCBsb29rIGZvciBhbiBlbnRyeSBpbiB0aGUgb2xkCisJICogbGlzdC4KKwkgKiBJZiBmb3VuZCwg Y2hlY2sgdG8gc2VlIGlmIGl0IHRoZSBzYW1lLgorCSAqICAgICAgICBJZiBpdCBpcyBub3QgdGhl IHNhbWUsIGRlbGV0ZSBhbmQgcmUtZXhwb3J0LgorCSAqICAgICAgICBUaGVuIG1hcmsgaXQgZG9u ZSBvbiB0aGUgb2xkIGxpc3QuCisJICogZWxzZSAobm90IGZvdW5kKQorCSAqICAgICAgICBleHBv cnQgaXQuCisJICogQW55IGVudHJpZXMgbGVmdCBpbiB0aGUgb2xkIGxpc3QgYWZ0ZXIgcHJvY2Vz c2luZyBtdXN0IGhhdmUgdGhlaXIKKwkgKiBleHBvcnRzIGRlbGV0ZWQuCiAJICovCi0JaWYgKGhh c19wdWJsaWNmaCA9PSAwKQotCQkodm9pZCkgbmZzc3ZjKE5GU1NWQ19OT1BVQkxJQ0ZILCBOVUxM KTsKKwlTTElTVF9GT1JFQUNIKGVwLCAmZXhwaGVhZCwgZW50cmllcykgeworc3lzbG9nKExPR19F UlIsICJmb3JlYWNoIGVwIik7CisJCWlmIChzdGF0ZnMoZXAtPmV4X2ZzZGlyLCAmZnMpIDwgMCkK KwkJCXJldHVybiAoMSk7CitzeXNsb2coTE9HX0VSUiwgImZzdjA9JWQgZnN2MT0lZCIsIGZzLmZf ZnNpZC52YWxbMF0sIGZzLmZfZnNpZC52YWxbMV0pOworCQlTTElTVF9GT1JFQUNIKG9lcCwgJm9s ZGV4cGhlYWQsIGVudHJpZXMpIHsKK3N5c2xvZyhMT0dfRVJSLCAiZm9yZWFjaCBvZXAiKTsKKwkJ CWlmIChlcC0+ZXhfZnMudmFsWzBdID09IG9lcC0+ZXhfZnMudmFsWzBdICYmCisJCQkgICAgZXAt PmV4X2ZzLnZhbFsxXSA9PSBvZXAtPmV4X2ZzLnZhbFsxXSkgeworCQkJCS8qCisJCQkJICogU3Rh dGZzIGJvdGggZmlsZSBzeXN0ZW1zIGFuZCBzYW5pdHkgY2hlY2sKKwkJCQkgKiB0aGF0IHRoZXkg c3RpbGwgcmVmZXIgdG8gdGhlIHNhbWUgZmlsZQorCQkJCSAqIHN5c3RlbS4KKwkJCQkgKiBJZiBu b3QsIHJldHVybiAxIHNvIHRoYXQgdGhlIHJlbG9hZCBvZiB0aGUKKwkJCQkgKiBleHBvcnRzIHdp bGwgYmUgZG9uZSBpbiBidWxrLCB0aGUKKwkJCQkgKiBwYXNzbm8gPT0gMCB3YXkuCisJCQkJICov CitzeXNsb2coTE9HX0VSUiwgImZuZCBleCIpOworCQkJCWlmIChzdGF0ZnMob2VwLT5leF9mc2Rp ciwgJm9mcykgPCAwIHx8CisJCQkJICAgIGVwLT5leF9mcy52YWxbMF0gIT0gZnMuZl9mc2lkLnZh bFswXSB8fAorCQkJCSAgICBlcC0+ZXhfZnMudmFsWzFdICE9IGZzLmZfZnNpZC52YWxbMV0gfHwK KwkJCQkgICAgZnMuZl9mc2lkLnZhbFswXSAhPSBvZnMuZl9mc2lkLnZhbFswXSB8fAorCQkJCSAg ICBmcy5mX2ZzaWQudmFsWzFdICE9IG9mcy5mX2ZzaWQudmFsWzFdKQorCQkJCQlyZXR1cm4gKDEp OworCQkJCS8qCisJCQkJICogVGVzdCB0byBzZWUgaWYgdGhlIGVudHJ5IGlzIHRoZSBzYW1lLgor CQkJCSAqIElmIG5vdCB0aGUgc2FtZSBkZWxldGUgZXhwb3J0cyBhbmQKKwkJCQkgKiByZS1leHBv cnQuCisJCQkJICovCitzeXNsb2coTE9HX0VSUiwgImF0IGNvbXBhcmUiKTsKKwkJCQlpZiAoY29t cGFyZV9leHBvcnQoZXAsIG9lcCkgIT0gMCkgeworCQkJCQlkZWxldGVfZXhwb3J0KGlvdiwgaW92 bGVuLCAmZnMsIGVycm1zZyk7CisJCQkJCXJldCA9IGRvX2V4cG9ydF9tb3VudChlcCwgJmZzKTsK KwkJCQkJaWYgKHJldCAhPSAwKQorCQkJCQkJcmV0dXJuIChyZXQpOworCQkJCX0KKwkJCQlvZXAt PmV4X2ZsYWcgfD0gRVhfRE9ORTsKK3N5c2xvZyhMT0dfRVJSLCAiZXhkb25lIik7CisJCQkJYnJl YWs7CisJCQl9CisJCX0KKwkJaWYgKG9lcCA9PSBOVUxMKSB7CitzeXNsb2coTE9HX0VSUiwgIm5v dCBmbmQgc28gZXgiKTsKKwkJCS8qIE5vdCBmb3VuZCwgc28gZG8gZXhwb3J0LiAqLworCQkJcmV0 ID0gZG9fZXhwb3J0X21vdW50KGVwLCAmZnMpOworCQkJaWYgKHJldCAhPSAwKQorCQkJCXJldHVy biAocmV0KTsKKwkJfQorCX0KKwlTTElTVF9GT1JFQUNIKG9lcCwgJm9sZGV4cGhlYWQsIGVudHJp ZXMpIHsKKwkJLyogRGVsZXRlIGV4cG9ydHMgbm90IGRvbmUuICovCisJCWlmICgob2VwLT5leF9m bGFnICYgRVhfRE9ORSkgPT0gMCkgeworc3lzbG9nKExPR19FUlIsICJub3QgZG9uZSBkZWxldGUi KTsKKwkJCWlmIChzdGF0ZnMob2VwLT5leF9mc2RpciwgJm9mcykgPj0gMCAmJgorCQkJICAgIG9l cC0+ZXhfZnMudmFsWzBdID09IG9mcy5mX2ZzaWQudmFsWzBdICYmCisJCQkgICAgb2VwLT5leF9m cy52YWxbMV0gPT0gb2ZzLmZfZnNpZC52YWxbMV0pCitzeXNsb2coTE9HX0VSUiwgImRvIGRlbGV0 ZSIpOworCQkJCWRlbGV0ZV9leHBvcnQoaW92LCBpb3ZsZW4sICZvZnMsIGVycm1zZyk7CisJCX0K Kwl9CiAKLQkvKiBSZXN1bWUgdGhlIG5mc2QuIElmIHRoZXkgd2VyZW4ndCBzdXNwZW5kZWQsIHRo aXMgaXMgaGFybWxlc3MuICovCi0JKHZvaWQpbmZzc3ZjKE5GU1NWQ19SRVNVTUVORlNELCBOVUxM KTsKKwkvKiBEbyB0aGUgVjQgcm9vdCBleHBvcnRzLCBhcyByZXF1aXJlZC4gKi8KKwlncnAgPSB2 NHJvb3RfZ3JwOworCXY0cm9vdF9waGFzZSA9IDI7CisJd2hpbGUgKHY0cm9vdF9lcCAhPSBOVUxM ICYmIGdycCAhPSBOVUxMKSB7CitzeXNsb2coTE9HX0VSUiwgInY0ZXggcGF0aD0lcyBncl90eXBl PTB4JXggZ3JfZXhmbGFncz0weCV4IiwgdjRyb290X2RpcnBhdGgsIGdycC0+Z3JfdHlwZSwgZ3Jw LT5ncl9leGZsYWdzKTsKK3N5c2xvZyhMT0dfRVJSLCAidjRyb290ZD0lcyIsIHY0cm9vdF9kaXJw YXRoKTsKKwkJcmV0ID0gZG9fbW91bnQodjRyb290X2VwLCBncnAsIGdycC0+Z3JfZXhmbGFncywg JmdycC0+Z3JfYW5vbiwKKwkJICAgIHY0cm9vdF9kaXJwYXRoLCBzdHJsZW4odjRyb290X2RpcnBh dGgpLCAmZnMpOworCQlpZiAocmV0ICE9IDApIHsKKwkJCXY0cm9vdF9waGFzZSA9IDA7CisJCQly ZXR1cm4gKHJldCk7CisJCX0KKwkJZ3JwID0gZ3JwLT5ncl9uZXh0OworCX0KKwl2NHJvb3RfcGhh c2UgPSAwOworCWZyZWVfdjRyb290ZXhwKCk7CisJcmV0dXJuICgwKTsKK30KKworLyoKKyAqIENv bXBhcmUgb2xkIGFuZCBjdXJyZW50IGV4cG9ydGxpc3QgZW50cmllcyBmb3IgdGhlIGZzaWQgYW5k IHJldHVybiAwCisgKiBpZiB0aGV5IGFyZSB0aGUgc2FtZSwgMSBvdGhlcndpc2UuCisgKi8KK3N0 YXRpYyBpbnQKK2NvbXBhcmVfZXhwb3J0KHN0cnVjdCBleHBvcnRsaXN0ICplcCwgc3RydWN0IGV4 cG9ydGxpc3QgKm9lcCkKK3sKKwlzdHJ1Y3QgZ3JvdXBsaXN0ICpncnAsICpvZ3JwOworCisJaWYg KHN0cmNtcChlcC0+ZXhfZnNkaXIsIG9lcC0+ZXhfZnNkaXIpICE9IDApCisJCXJldHVybiAoMSk7 CisJaWYgKChlcC0+ZXhfZGVmZGlyICE9IE5VTEwgJiYgb2VwLT5leF9kZWZkaXIgPT0gTlVMTCkg fHwKKwkgICAgKGVwLT5leF9kZWZkaXIgPT0gTlVMTCAmJiBvZXAtPmV4X2RlZmRpciAhPSBOVUxM KSkKKwkJcmV0dXJuICgxKTsKKwlpZiAoZXAtPmV4X2RlZmRpciAhPSBOVUxMKSB7CisJCWlmICgo ZXAtPmV4X2RlZmRpci0+ZHBfZmxhZyAmIERQX0RFRlNFVCkgIT0gMCkgeworCQkJaWYgKChvZXAt PmV4X2RlZmRpci0+ZHBfZmxhZyAmIERQX0RFRlNFVCkgPT0gMCkKKwkJCQlyZXR1cm4gKDEpOwor CQkJaWYgKGVwLT5leF9kZWZudW1zZWNmbGF2b3JzICE9CisJCQkgICAgb2VwLT5leF9kZWZudW1z ZWNmbGF2b3JzIHx8CisJCQkgICAgZXAtPmV4X2RlZmV4ZmxhZ3MgIT0gb2VwLT5leF9kZWZleGZs YWdzIHx8CisJCQkgICAgY29tcGFyZV9jcmVkKCZlcC0+ZXhfZGVmYW5vbiwgJm9lcC0+ZXhfZGVm YW5vbikgIT0KKwkJCSAgICAwIHx8IGNvbXBhcmVfc2VjZmxhdm9yKGVwLT5leF9kZWZzZWNmbGF2 b3JzLAorCQkJICAgIG9lcC0+ZXhfZGVmc2VjZmxhdm9ycywgZXAtPmV4X2RlZm51bXNlY2ZsYXZv cnMpICE9CisJCQkgICAgMCkKKwkJCQlyZXR1cm4gKDEpOworCQl9CisJfQorCisJLyogTm93LCBj aGVjayBhbGwgdGhlIGdyb3Vwcy4gKi8KKwlmb3IgKG9ncnAgPSBvZXAtPmV4X2dycGhlYWQ7IG9n cnAgIT0gTlVMTDsgb2dycCA9IG9ncnAtPmdyX25leHQpCisJCW9ncnAtPmdyX2ZsYWcgPSAwOwor CWZvciAoZ3JwID0gZXAtPmV4X2dycGhlYWQ7IGdycCAhPSBOVUxMOyBncnAgPSBncnAtPmdyX25l eHQpIHsKKwkJZm9yIChvZ3JwID0gb2VwLT5leF9ncnBoZWFkOyBvZ3JwICE9IE5VTEw7IG9ncnAg PQorCQkgICAgb2dycC0+Z3JfbmV4dCkKKwkJCWlmICgob2dycC0+Z3JfZmxhZyAmIEdSX0ZORCkg PT0gMCAmJgorCQkJICAgIGdycC0+Z3JfbnVtc2VjZmxhdm9ycyA9PSBvZ3JwLT5ncl9udW1zZWNm bGF2b3JzICYmCisJCQkgICAgZ3JwLT5ncl9leGZsYWdzID09IG9ncnAtPmdyX2V4ZmxhZ3MgJiYK KwkJCSAgICBjb21wYXJlX2NyZWQoJmdycC0+Z3JfYW5vbiwgJm9ncnAtPmdyX2Fub24pID09IDAg JiYKKwkJCSAgICBjb21wYXJlX3NlY2ZsYXZvcihncnAtPmdyX3NlY2ZsYXZvcnMsCisJCQkgICAg b2dycC0+Z3Jfc2VjZmxhdm9ycywgZ3JwLT5ncl9udW1zZWNmbGF2b3JzKSA9PSAwKQorCQkJCWJy ZWFrOworCQlpZiAob2dycCAhPSBOVUxMKQorCQkJb2dycC0+Z3JfZmxhZyB8PSBHUl9GTkQ7CisJ CWVsc2UKKwkJCXJldHVybiAoMSk7CisJfQorCWZvciAob2dycCA9IG9lcC0+ZXhfZ3JwaGVhZDsg b2dycCAhPSBOVUxMOyBvZ3JwID0gb2dycC0+Z3JfbmV4dCkKKwkJaWYgKChvZ3JwLT5ncl9mbGFn ICYgR1JfRk5EKSA9PSAwKQorCQkJcmV0dXJuICgxKTsKKwlyZXR1cm4gKDApOworfQorCisvKgor ICogQ29tcGFyZSB0byBzdHJ1Y3QgeHVjcmVkJ3MuICBSZXR1cm4gMCBpZiB0aGUgc2FtZSBhbmQg MSBvdGhlcndpc2UuCisgKiBUaGlzIGFsZ29yaXRobSBpcyBPKE4qKjIpIGJ1dCBmb3J0dW5hdGVs eSBOIGlzIGFsd2F5cyBzbWFsbC4KKyAqLworc3RhdGljIGludAorY29tcGFyZV9jcmVkKHN0cnVj dCB4dWNyZWQgKmNyMCwgc3RydWN0IHh1Y3JlZCAqY3IxKQoreworCWludCBpLCBqOworCisJaWYg KGNyMC0+Y3JfdWlkICE9IGNyMS0+Y3JfdWlkIHx8IGNyMC0+Y3Jfbmdyb3VwcyAhPSBjcjEtPmNy X25ncm91cHMpCisJCXJldHVybiAoMSk7CisJZm9yIChpID0gMDsgaSA8IGNyMC0+Y3Jfbmdyb3Vw czsgaSsrKSB7CisJCWZvciAoaiA9IDA7IGogPCBjcjAtPmNyX25ncm91cHM7IGorKykKKwkJCWlm IChjcjAtPmNyX2dyb3Vwc1tpXSA9PSBjcjEtPmNyX2dyb3Vwc1tqXSkKKwkJCQlicmVhazsKKwkJ aWYgKGogPT0gY3IwLT5jcl9uZ3JvdXBzKQorCQkJcmV0dXJuICgxKTsKKwl9CisJcmV0dXJuICgw KTsKK30KKworLyoKKyAqIENvbXBhcmUgdHdvIGxpc3RzIG9mIHNlY3VyaXR5IGZsYXZvcnMuICBS ZXR1cm4gMCBpZiB0aGUgc2FtZSBhbmQgMSBvdGhlcndpc2UuCisgKiBUaGlzIGFsZ29yaXRobSBp cyBPKE4qKjIpIGJ1dCBmb3J0dW5hdGVseSBOIGlzIGFsd2F5cyBzbWFsbC4KKyAqLworc3RhdGlj IGludAorY29tcGFyZV9zZWNmbGF2b3IoaW50ICpzZWMxLCBpbnQgKnNlYzIsIGludCBuc2VjKQor eworCWludCBpLCBqOworCisJZm9yIChpID0gMDsgaSA8IG5zZWM7IGkrKykgeworCQlmb3IgKGog PSAwOyBqIDwgbnNlYzsgaisrKQorCQkJaWYgKHNlYzFbaV0gPT0gc2VjMltqXSkKKwkJCQlicmVh azsKKwkJaWYgKGogPT0gbnNlYykKKwkJCXJldHVybiAoMSk7CisJfQorCXJldHVybiAoMCk7Cit9 CisKKy8qCisgKiBEZWxldGUgYW4gZXhwb3J0cyBlbnRyeS4KKyAqLworc3RhdGljIHZvaWQKK2Rl bGV0ZV9leHBvcnQoc3RydWN0IGlvdmVjICppb3YsIGludCBpb3ZsZW4sIHN0cnVjdCBzdGF0ZnMg KmZzcCwgY2hhciAqZXJybXNnKQoreworCXN0cnVjdCB4dmZzY29uZiB2ZmM7CisKKwlpZiAoZ2V0 dmZzYnluYW1lKGZzcC0+Zl9mc3R5cGVuYW1lLCAmdmZjKSAhPSAwKSB7CisJCXN5c2xvZyhMT0df RVJSLCAiZ2V0dmZzYnluYW1lKCkgZmFpbGVkIGZvciAlcyIsCisJCSAgICBmc3AtPmZfZnN0eXBl bmFtZSk7CisJCXJldHVybjsKKwl9CisJCisJLyoKKwkgKiBXZSBkbyBub3QgbmVlZCB0byBkZWxl dGUgImV4cG9ydCIgZmxhZyBmcm9tCisJICogZmlsZXN5c3RlbXMgdGhhdCBkbyBub3QgaGF2ZSBp dCBzZXQuCisJICovCisJaWYgKCEoZnNwLT5mX2ZsYWdzICYgTU5UX0VYUE9SVEVEKSkKKwkJcmV0 dXJuOworCS8qCisJICogRG8gbm90IGRlbGV0ZSBleHBvcnQgZm9yIG5ldHdvcmsgZmlsZXN5c3Rl bSBieQorCSAqIHBhc3NpbmcgImV4cG9ydCIgYXJnIHRvIG5tb3VudCgpLgorCSAqIEl0IG9ubHkg bWFrZXMgc2Vuc2UgdG8gZG8gdGhpcyBmb3IgbG9jYWwgZmlsZXN5c3RlbXMuCisJICovCisJaWYg KHZmYy52ZmNfZmxhZ3MgJiBWRkNGX05FVFdPUkspCisJCXJldHVybjsKKwkKKwlpb3ZbMV0uaW92 X2Jhc2UgPSBmc3AtPmZfZnN0eXBlbmFtZTsKKwlpb3ZbMV0uaW92X2xlbiA9IHN0cmxlbihmc3At PmZfZnN0eXBlbmFtZSkgKyAxOworCWlvdlszXS5pb3ZfYmFzZSA9IGZzcC0+Zl9tbnRvbm5hbWU7 CisJaW92WzNdLmlvdl9sZW4gPSBzdHJsZW4oZnNwLT5mX21udG9ubmFtZSkgKyAxOworCWlvdls1 XS5pb3ZfYmFzZSA9IGZzcC0+Zl9tbnRmcm9tbmFtZTsKKwlpb3ZbNV0uaW92X2xlbiA9IHN0cmxl bihmc3AtPmZfbW50ZnJvbW5hbWUpICsgMTsKKwllcnJtc2dbMF0gPSAnXDAnOworCQorCS8qCisJ ICogRVhERVYgaXMgcmV0dXJuZWQgd2hlbiBwYXRoIGV4aXN0cyBidXQgaXMgbm90IGEKKwkgKiBt b3VudCBwb2ludC4gIE1heSBoYXBwZW5zIGlmIHJhY2VkIHdpdGggdW5tb3VudC4KKwkgKi8KKwlp ZiAobm1vdW50KGlvdiwgaW92bGVuLCBmc3AtPmZfZmxhZ3MpIDwgMCAmJiBlcnJubyAhPSBFTk9F TlQgJiYKKwkgICAgZXJybm8gIT0gRU5PVFNVUCAmJiBlcnJubyAhPSBFWERFVikgeworCQlzeXNs b2coTE9HX0VSUiwKKwkJICAgICJjYW4ndCBkZWxldGUgZXhwb3J0cyBmb3IgJXM6ICVtICVzIiwK KwkJICAgIGZzcC0+Zl9tbnRvbm5hbWUsIGVycm1zZyk7CisJfQorfQorCisvKgorICogRnJlZSB1 cCB0aGUgZXhwb3J0cyBsaXN0cyBwYXNzZWQgaW4gYXMgYXJndW1lbnRzLgorICovCitzdGF0aWMg dm9pZAorZnJlZV9leHBvcnRzKHN0cnVjdCBleHBvcnRsaXN0aGVhZCAqZXhocCkKK3sKKwlzdHJ1 Y3QgZXhwb3J0bGlzdCAqZXAsICplcDI7CisKKwlTTElTVF9GT1JFQUNIX1NBRkUoZXAsIGV4aHAs IGVudHJpZXMsIGVwMikgeworCQlTTElTVF9SRU1PVkUoZXhocCwgZXAsIGV4cG9ydGxpc3QsIGVu dHJpZXMpOworCQlmcmVlX2V4cChlcCk7CisJfQorCVNMSVNUX0lOSVQoZXhocCk7CiB9CiAKIC8q CkBAIC0xOTY1LDcgKzIyNjYsNyBAQCBhZGRfZXhwZGlyKHN0cnVjdCBkaXJsaXN0ICoqZHBwLCBj aGFyICpjCiAgKi8KIHN0YXRpYyB2b2lkCiBoYW5nX2RpcnAoc3RydWN0IGRpcmxpc3QgKmRwLCBz dHJ1Y3QgZ3JvdXBsaXN0ICpncnAsIHN0cnVjdCBleHBvcnRsaXN0ICplcCwKLQlpbnQgZmxhZ3Mp CisJaW50IGZsYWdzLCBzdHJ1Y3QgeHVjcmVkICphbm9uY3JwLCBpbnQgZXhmbGFncykKIHsKIAlz dHJ1Y3QgaG9zdGxpc3QgKmhwOwogCXN0cnVjdCBkaXJsaXN0ICpkcDI7CkBAIC0xOTgyLDYgKzIy ODMsOCBAQCBoYW5nX2RpcnAoc3RydWN0IGRpcmxpc3QgKmRwLCBzdHJ1Y3QgZ3JvCiAJCQlpZiAo ZXAtPmV4X251bXNlY2ZsYXZvcnMgPiAwKQogCQkJCW1lbWNweShlcC0+ZXhfZGVmc2VjZmxhdm9y cywgZXAtPmV4X3NlY2ZsYXZvcnMsCiAJCQkJICAgIHNpemVvZihlcC0+ZXhfc2VjZmxhdm9ycykp OworCQkJZXAtPmV4X2RlZmFub24gPSAqYW5vbmNycDsKKwkJCWVwLT5leF9kZWZleGZsYWdzID0g ZXhmbGFnczsKIAkJfSBlbHNlIHdoaWxlIChncnApIHsKIAkJCWhwID0gZ2V0X2h0KCk7CiAJCQlo cC0+aHRfZ3JwID0gZ3JwOwpAQCAtMjQwMyw2ICsyNzA2LDcgQEAgZ2V0X2hvc3QoY2hhciAqY3As IHN0cnVjdCBncm91cGxpc3QgKmdycAogc3RhdGljIHZvaWQKIGZyZWVfZXhwKHN0cnVjdCBleHBv cnRsaXN0ICplcCkKIHsKKwlzdHJ1Y3QgZ3JvdXBsaXN0ICpncnAsICp0Z3JwOwogCiAJaWYgKGVw LT5leF9kZWZkaXIpIHsKIAkJZnJlZV9ob3N0KGVwLT5leF9kZWZkaXItPmRwX2hvc3RzKTsKQEAg LTI0MTMsMTAgKzI3MTcsMzcgQEAgZnJlZV9leHAoc3RydWN0IGV4cG9ydGxpc3QgKmVwKQogCWlm IChlcC0+ZXhfaW5kZXhmaWxlKQogCQlmcmVlKGVwLT5leF9pbmRleGZpbGUpOwogCWZyZWVfZGly KGVwLT5leF9kaXJsKTsKKwl0Z3JwID0gZXAtPmV4X2dycGhlYWQ7CisJd2hpbGUgKHRncnAgIT0g TlVMTCkgeworCQlncnAgPSB0Z3JwOworCQl0Z3JwID0gdGdycC0+Z3JfbmV4dDsKKwkJZnJlZV9n cnAoZ3JwKTsKKwl9CiAJZnJlZSgoY2FkZHJfdCllcCk7CiB9CiAKIC8qCisgKiBGcmVlIHVwIHRo ZSB2NHJvb3QgZXhwb3J0cy4KKyAqLworc3RhdGljIHZvaWQKK2ZyZWVfdjRyb290ZXhwKHZvaWQp Cit7CisJc3RydWN0IGdyb3VwbGlzdCAqZ3JwLCAqdGdycDsKKworCWlmICh2NHJvb3RfZXAgIT0g TlVMTCkgeworCQlmcmVlX2V4cCh2NHJvb3RfZXApOworCQl2NHJvb3RfZXAgPSBOVUxMOworCX0K Kwl0Z3JwID0gdjRyb290X2dycDsKKwl2NHJvb3RfZ3JwID0gTlVMTDsKKwl3aGlsZSAodGdycCAh PSBOVUxMKSB7CisJCWdycCA9IHRncnA7CisJCXRncnAgPSB0Z3JwLT5ncl9uZXh0OworCQlmcmVl X2dycChncnApOworCX0KK30KKworLyoKICAqIEZyZWUgaG9zdHMuCiAgKi8KIHN0YXRpYyB2b2lk CkBAIC0yNDU2LDYgKzI3ODcsNDQgQEAgb3V0X29mX21lbSh2b2lkKQogfQogCiAvKgorICogQ2Fs bCBkb19tb3VudCgpIGZyb20gdGhlIHN0cnVjdCBleHBvcnRsaXN0LCBmb3IgZWFjaCBjYXNlIG5l ZWRlZC4KKyAqLworc3RhdGljIGludAorZG9fZXhwb3J0X21vdW50KHN0cnVjdCBleHBvcnRsaXN0 ICplcCwgc3RydWN0IHN0YXRmcyAqZnNwKQoreworCXN0cnVjdCBkaXJsaXN0ICpkcDsKKwlzdHJ1 Y3QgZ3JvdXBsaXN0ICpncnAsIGRlZmdycDsKKwlpbnQgcmV0OworCXNpemVfdCBkaXJsZW47CisK K3N5c2xvZyhMT0dfRVJSLCAiZG9fbW91bnRfZXhwb3J0PSVzIiwgZXAtPmV4X2ZzZGlyKTsKKwlk aXJsZW4gPSBzdHJsZW4oZXAtPmV4X2ZzZGlyKTsKKwlkcCA9IGVwLT5leF9kZWZkaXI7CisJaWYg KGRwICE9IE5VTEwgJiYgKGRwLT5kcF9mbGFnICYgRFBfREVGU0VUKSAhPSAwKSB7CisJCWRlZmdy cC5ncl90eXBlID0gR1RfREVGQVVMVDsKKwkJZGVmZ3JwLmdyX25leHQgPSBOVUxMOworCQkvKiBX ZSBoYXZlIGFuIGVudHJ5IGZvciBhbGwgb3RoZXIgaG9zdHMvbmV0cy4gKi8KK3N5c2xvZyhMT0df RVJSLCAiZXhfZGVmZXhmbGFncz0weCV4IiwgZXAtPmV4X2RlZmV4ZmxhZ3MpOworCQlyZXQgPSBk b19tb3VudChlcCwgJmRlZmdycCwgZXAtPmV4X2RlZmV4ZmxhZ3MsICZlcC0+ZXhfZGVmYW5vbiwK KwkJICAgIGVwLT5leF9mc2RpciwgZGlybGVuLCBmc3ApOworCQlpZiAocmV0ICE9IDApCisJCQly ZXR1cm4gKHJldCk7CisJfQorCisJLyogRG8gYSBtb3VudCBmb3IgZWFjaCBncm91cC4gKi8KKwln cnAgPSBlcC0+ZXhfZ3JwaGVhZDsKKwl3aGlsZSAoZ3JwICE9IE5VTEwpIHsKK3N5c2xvZyhMT0df RVJSLCAiZG8gbW91bnQgZ3JfdHlwZT0weCV4IGdyX2V4ZmxhZ3M9MHgleCIsIGdycC0+Z3JfdHlw ZSwgZ3JwLT5ncl9leGZsYWdzKTsKKwkJcmV0ID0gZG9fbW91bnQoZXAsIGdycCwgZ3JwLT5ncl9l eGZsYWdzLCAmZ3JwLT5ncl9hbm9uLAorCQkgICAgZXAtPmV4X2ZzZGlyLCBkaXJsZW4sIGZzcCk7 CisJCWlmIChyZXQgIT0gMCkKKwkJCXJldHVybiAocmV0KTsKKwkJZ3JwID0gZ3JwLT5ncl9uZXh0 OworCX0KKwlyZXR1cm4gKDApOworfQorCisvKgogICogRG8gdGhlIG5tb3VudCgpIHN5c2NhbGwg d2l0aCB0aGUgdXBkYXRlIGZsYWcgdG8gcHVzaCB0aGUgZXhwb3J0IGluZm8gaW50bwogICogdGhl IGtlcm5lbC4KICAqLwpAQCAtMjQ4Nyw2ICsyODU2LDcgQEAgZG9fbW91bnQoc3RydWN0IGV4cG9y dGxpc3QgKmVwLCBzdHJ1Y3QgZwogCWJ6ZXJvKGVycm1zZywgc2l6ZW9mKGVycm1zZykpOwogCWVh cC0+ZXhfZmxhZ3MgPSBleGZsYWdzOwogCWVhcC0+ZXhfYW5vbiA9ICphbm9uY3JwOworc3lzbG9n KExPR19FUlIsICJkb19leGZsYWdzPTB4JXgiLCBleGZsYWdzKTsKIAllYXAtPmV4X2luZGV4Zmls ZSA9IGVwLT5leF9pbmRleGZpbGU7CiAJaWYgKGdycC0+Z3JfdHlwZSA9PSBHVF9IT1NUKQogCQlh aSA9IGdycC0+Z3JfcHRyLmd0X2FkZHJpbmZvOwo= --_002_YQBPR0101MB22608FE3367E1DBD64ED01E1DD310YQBPR0101MB2260_-- From owner-freebsd-fs@freebsd.org Tue May 7 04:19:34 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4C5B0159EAD9 for ; Tue, 7 May 2019 04:19:34 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id D4A36702AE for ; Tue, 7 May 2019 04:19:33 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id 94CAD159EAD8; Tue, 7 May 2019 04:19:33 +0000 (UTC) Delivered-To: fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 825CD159EAD7 for ; Tue, 7 May 2019 04:19:33 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.ysv.freebsd.org (mxrelay.ysv.freebsd.org [IPv6:2001:1900:2254:206a::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.ysv.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0B9AA702AC for ; Tue, 7 May 2019 04:19:33 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.ysv.freebsd.org (Postfix) with ESMTPS id 42FBC1DB75 for ; Tue, 7 May 2019 04:19:32 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id x474JViX085805 for ; Tue, 7 May 2019 04:19:31 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id x474JVK1085785 for fs@FreeBSD.org; Tue, 7 May 2019 04:19:31 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: fs@FreeBSD.org Subject: [Bug 230962] Kernel panic when writing extended attributes with soft updates enabled Date: Tue, 07 May 2019 04:19:26 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 11.2-RELEASE X-Bugzilla-Keywords: panic X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: koro@kzxiv.net X-Bugzilla-Status: Closed X-Bugzilla-Resolution: FIXED X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: fs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 May 2019 04:19:34 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D230962 --- Comment #23 from koro@kzxiv.net --- Thanks for your work. Could this be backported as an errata for 11.2 and 12.0? It does have the potential to crash the machine after all. --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-fs@freebsd.org Tue May 7 09:40:04 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E5B2B15A526A for ; Tue, 7 May 2019 09:40:03 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id 7D2A681EF1 for ; Tue, 7 May 2019 09:40:03 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id 3DDE215A5269; Tue, 7 May 2019 09:40:03 +0000 (UTC) Delivered-To: fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2C7DD15A5268 for ; Tue, 7 May 2019 09:40:03 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.ysv.freebsd.org (mxrelay.ysv.freebsd.org [IPv6:2001:1900:2254:206a::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.ysv.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C125281EEF for ; Tue, 7 May 2019 09:40:02 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.ysv.freebsd.org (Postfix) with ESMTPS id E0BF3208FB for ; Tue, 7 May 2019 09:40:01 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id x479e1ff028373 for ; Tue, 7 May 2019 09:40:01 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id x479e1xM028372 for fs@FreeBSD.org; Tue, 7 May 2019 09:40:01 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: fs@FreeBSD.org Subject: [Bug 229614] ZFS lockup in zil_commit_impl Date: Tue, 07 May 2019 09:39:55 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 11.2-RELEASE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: koobs@FreeBSD.org X-Bugzilla-Status: In Progress X-Bugzilla-Resolution: X-Bugzilla-Priority: Normal X-Bugzilla-Assigned-To: allanjude@FreeBSD.org X-Bugzilla-Flags: mfc-stable11? X-Bugzilla-Changed-Fields: see_also Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 May 2019 09:40:04 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D229614 Kubilay Kocak changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://bugs.freebsd.org/bu | |gzilla/show_bug.cgi?id=3D2= 311 | |17 --=20 You are receiving this mail because: You are on the CC list for the bug.= From owner-freebsd-fs@freebsd.org Tue May 7 10:48:38 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2300315A678B for ; Tue, 7 May 2019 10:48:38 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id B29B483FCA for ; Tue, 7 May 2019 10:48:37 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id 72CC215A678A; Tue, 7 May 2019 10:48:37 +0000 (UTC) Delivered-To: fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 611F415A6789 for ; Tue, 7 May 2019 10:48:37 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.ysv.freebsd.org (mxrelay.ysv.freebsd.org [IPv6:2001:1900:2254:206a::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.ysv.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F27F383FC8 for ; Tue, 7 May 2019 10:48:36 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.ysv.freebsd.org (Postfix) with ESMTPS id 23E73212FC for ; Tue, 7 May 2019 10:48:36 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id x47Ama0R065048 for ; Tue, 7 May 2019 10:48:36 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id x47Ama8a065047 for fs@FreeBSD.org; Tue, 7 May 2019 10:48:36 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: fs@FreeBSD.org Subject: [Bug 225337] z_teardown_inactive_lock held inordinately long Date: Tue, 07 May 2019 10:48:36 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 11.1-RELEASE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: swills@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: fs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 May 2019 10:48:38 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D225337 --- Comment #9 from Steve Wills --- (In reply to Andriy Gapon from comment #8) Ok, thanks. I may have had vfs.zfs.arc_free_target set too high. Turning th= at down seems to have helped avoid the issue. --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-fs@freebsd.org Tue May 7 23:04:14 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E2D5515967D0 for ; Tue, 7 May 2019 23:04:13 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-QB1-obe.outbound.protection.outlook.com (mail-eopbgr660082.outbound.protection.outlook.com [40.107.66.82]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7F7D380AC0 for ; Tue, 7 May 2019 23:04:11 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM (52.132.70.13) by YQBPR0101MB1764.CANPRD01.PROD.OUTLOOK.COM (52.132.71.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.10; Tue, 7 May 2019 23:04:10 +0000 Received: from YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM ([fe80::e92e:7851:66e9:3967]) by YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM ([fe80::e92e:7851:66e9:3967%7]) with mapi id 15.20.1856.012; Tue, 7 May 2019 23:04:10 +0000 From: Rick Macklem To: Peter Eriksson CC: "freebsd-fs@freebsd.org" Subject: Re: patch to improve perf for handling exports of large numbers of file systems Thread-Topic: patch to improve perf for handling exports of large numbers of file systems Thread-Index: AQHVBGywsS7UeCSUjUWd1VaW2C8j66ZgSOiN Date: Tue, 7 May 2019 23:04:10 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c1684cf6-70dd-4086-5903-08d6d340508e x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(49563074)(7193020); SRVR:YQBPR0101MB1764; x-ms-traffictypediagnostic: YQBPR0101MB1764: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:534; x-forefront-prvs: 0030839EEE x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(346002)(136003)(396003)(376002)(39860400002)(189003)(199004)(11346002)(25786009)(53546011)(6506007)(74316002)(7696005)(6436002)(316002)(71190400001)(71200400001)(229853002)(5024004)(256004)(14444005)(5660300002)(446003)(296002)(305945005)(6246003)(9686003)(786003)(52536014)(2906002)(476003)(74482002)(99286004)(4326008)(478600001)(86362001)(53936002)(76176011)(486006)(14454004)(68736007)(33656002)(66946007)(81156014)(66556008)(64756008)(66446008)(66616009)(81166006)(6916009)(99936001)(8676002)(8936002)(66476007)(73956011)(102836004)(2940100002)(186003)(76116006)(46003)(55016002); DIR:OUT; SFP:1101; SCL:1; SRVR:YQBPR0101MB1764; H:YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: uoguelph.ca does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 8l8CQVEHNqOZN/MUoX3o25JMdpB8HHm13tm3I7K34MN3gJmOJ64XgHAVO7UfCbzD6JUAdaz42IFtxOIDGM1yK4eMU9icTz8dTEHq9qqnZB5hjw/QtRo/DvfWFwj8sFfIiL0ooAzV2zrK9kb9GWYehjpejh694573P5bDa/2xL+9q83b+VeAp9NcOehT8avn8X7boATvKDpW8zjurSJBTB8k4trj4eWK8VMKmviYDmndLigXLyP1TvuYmkbm/ZlWCZWdIKoaLu8sPhYDZEo7YsiQTuMNx2UAz8ibamht1EoI35YELPmXcDvl2Pzf6Gk0Onm2heJA+0muJtZcoenwQvHf4VM6JOIVdiEvg6ItNMRUGL5rtRU9rC+H+FgkdDL4kWJTdKCcERrc3o1GebchumLMzqZbv9ubtVtbr9LSznPg= Content-Type: multipart/mixed; boundary="_002_YQBPR0101MB2260008E1767646E9DFBB790DD310YQBPR0101MB2260_" MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-Network-Message-Id: c1684cf6-70dd-4086-5903-08d6d340508e X-MS-Exchange-CrossTenant-originalarrivaltime: 07 May 2019 23:04:10.0608 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQBPR0101MB1764 X-Rspamd-Queue-Id: 7F7D380AC0 X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of rmacklem@uoguelph.ca designates 40.107.66.82 as permitted sender) smtp.mailfrom=rmacklem@uoguelph.ca X-Spamd-Result: default: False [-3.01 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; NEURAL_HAM_MEDIUM(-0.98)[-0.977,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; NEURAL_HAM_LONG(-0.99)[-0.993,0]; HAS_ATTACHMENT(0.00)[]; MIME_GOOD(-0.10)[multipart/mixed,text/plain]; DMARC_NA(0.00)[uoguelph.ca]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: mx2.hc184-76.ca.iphmx.com]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_NONE(0.00)[82.66.107.40.list.dnswl.org : 127.0.3.0]; NEURAL_HAM_SHORT(-0.73)[-0.725,0]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+]; RCVD_TLS_LAST(0.00)[] X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 May 2019 23:04:14 -0000 --_002_YQBPR0101MB2260008E1767646E9DFBB790DD310YQBPR0101MB2260_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Here is an updated patch. I haven't found anything broken in the previous one, but this one uses hash tables of lists for the exportlist structures instead of a single linked list and that should help for large numbers of file systems exported. Good luck with the testing, rick ________________________________________ From: owner-freebsd-fs@freebsd.org on behalf= of Rick Macklem Sent: Monday, May 6, 2019 8:50:10 PM To: Peter Eriksson Cc: freebsd-fs@freebsd.org Subject: patch to improve perf for handling exports of large numbers of fil= e systems Hi, Peter has reported to me via email that updating exports when mountd receiv= es a SIGHUP takes about 16seconds. This isn't surprising, since he has 20,000= + file systems to export. The current code deletes all 20,000+ exports in the kernel and then re-expo= rts everything in the exports file while having the nfsd suspended (assuming th= e "-S" option is being used). It was designed decades ago when a system only had a few file systems, but sometimes many exported directories within a file sys= tem. The attached patch is a first draft (minimally tested) for the addition of = a "-I" option for mountd. When mountd is started with this "-I" option, it processes the = exports file(s) into the structures that mountd uses and then compares the old and = new structures, only doing unexport/re-export for the ones that have changed, when it receives a SIGHUP. At the moment, the algorithm for doing the comparison isn't efficient, but = at least it isn't doing a lot of system calls to unexport/re-export. (A simple chang= e from using a single linked list to a hash table of linked lists for the "= struct exportlist" would help the comparison algorithm a lot, but I wanted to hold off on that until what I h= ave has seen more testing, since it will make the patch even more complex.) I hope that Peter can test this (and anyone else willing to do so, please d= o since there are many variants within the exports file(s) and I might not th= ink of them all to test). The patch is "noisy", since it puts a bunch of debug stuff out via syslog()= . You can get rid of this by simply deleting the syslog(..); lines that are n= ot indented. Anyone who can test this, it would be appreciated, rick ps: Without "-I", the behaviour should not have changed. --_002_YQBPR0101MB2260008E1767646E9DFBB790DD310YQBPR0101MB2260_ Content-Type: application/octet-stream; name="mountd-exp2.patch" Content-Description: mountd-exp2.patch Content-Disposition: attachment; filename="mountd-exp2.patch"; size=27128; creation-date="Tue, 07 May 2019 23:04:05 GMT"; modification-date="Tue, 07 May 2019 23:04:05 GMT" Content-Transfer-Encoding: base64 LS0tIHVzci5zYmluL21vdW50ZC9tb3VudGQuYy5zYXYJMjAxOS0wNC0zMCAyMTo0ODoyMy4xNTU0 MTkwMDAgLTA0MDAKKysrIHVzci5zYmluL21vdW50ZC9tb3VudGQuYwkyMDE5LTA1LTA3IDE4OjM5 OjMzLjE2ODEwMTAwMCAtMDQwMApAQCAtNDksNiArNDksNyBAQCBfX0ZCU0RJRCgiJEZyZWVCU0Q6 IGhlYWQvdXNyLnNiaW4vbW91bnRkCiAKICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KICNpbmNsdWRl IDxzeXMvZmNudGwuaD4KKyNpbmNsdWRlIDxzeXMvZm52X2hhc2guaD4KICNpbmNsdWRlIDxzeXMv bGlua2VyLmg+CiAjaW5jbHVkZSA8c3lzL21vZHVsZS5oPgogI2luY2x1ZGUgPHN5cy9tb3VudC5o PgpAQCAtMTE0LDEwICsxMTUsMTMgQEAgc3RydWN0IGRpcmxpc3Qgewogc3RydWN0IGV4cG9ydGxp c3QgewogCXN0cnVjdCBkaXJsaXN0CSpleF9kaXJsOwogCXN0cnVjdCBkaXJsaXN0CSpleF9kZWZk aXI7CisJc3RydWN0IGdyb3VwbGlzdCAqZXhfZ3JwaGVhZDsKIAlpbnQJCWV4X2ZsYWc7CiAJZnNp ZF90CQlleF9mczsKIAljaGFyCQkqZXhfZnNkaXI7CiAJY2hhcgkJKmV4X2luZGV4ZmlsZTsKKwlz dHJ1Y3QgeHVjcmVkCWV4X2RlZmFub247CisJaW50CQlleF9kZWZleGZsYWdzOwogCWludAkJZXhf bnVtc2VjZmxhdm9yczsKIAlpbnQJCWV4X3NlY2ZsYXZvcnNbTUFYU0VDRkxBVk9SU107CiAJaW50 CQlleF9kZWZudW1zZWNmbGF2b3JzOwpAQCAtMTI3LDYgKzEzMSw5IEBAIHN0cnVjdCBleHBvcnRs aXN0IHsKIH07CiAvKiBleF9mbGFnIGJpdHMgKi8KICNkZWZpbmUJRVhfTElOS0VECTB4MQorI2Rl ZmluZQlFWF9ET05FCQkweDIKKworU0xJU1RfSEVBRChleHBvcnRsaXN0aGVhZCwgZXhwb3J0bGlz dCk7CiAKIHN0cnVjdCBuZXRtc2sgewogCXN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIG50X25ldDsK QEAgLTE0Myw2ICsxNTAsOSBAQCBzdHJ1Y3QgZ3JvdXBsaXN0IHsKIAlpbnQgZ3JfdHlwZTsKIAl1 bmlvbiBncm91cHR5cGVzIGdyX3B0cjsKIAlzdHJ1Y3QgZ3JvdXBsaXN0ICpncl9uZXh0OworCXN0 cnVjdCB4dWNyZWQgZ3JfYW5vbjsKKwlpbnQgZ3JfZXhmbGFnczsKKwlpbnQgZ3JfZmxhZzsKIAlp bnQgZ3JfbnVtc2VjZmxhdm9yczsKIAlpbnQgZ3Jfc2VjZmxhdm9yc1tNQVhTRUNGTEFWT1JTXTsK IH07CkBAIC0xNTMsNiArMTYzLDkgQEAgc3RydWN0IGdyb3VwbGlzdCB7CiAjZGVmaW5lCUdUX0RF RkFVTFQJMHgzCiAjZGVmaW5lIEdUX0lHTk9SRQkweDUKIAorLyogR3JvdXAgZmxhZ3MgKi8KKyNk ZWZpbmUJR1JfRk5ECQkweDEKKwogc3RydWN0IGhvc3RsaXN0IHsKIAlpbnQJCSBodF9mbGFnOwkv KiBVc2VzIERQX3h4IGJpdHMgKi8KIAlzdHJ1Y3QgZ3JvdXBsaXN0ICpodF9ncnA7CkBAIC0xODUs MTcgKzE5OCwyOCBAQCBzdGF0aWMgdm9pZAljb21wbGV0ZV9zZXJ2aWNlKHN0cnVjdCBuZXRjCiBz dGF0aWMgdm9pZAljbGVhcm91dF9zZXJ2aWNlKHZvaWQpOwogc3RhdGljIHZvaWQJZGVsX21saXN0 KGNoYXIgKmhvc3RwLCBjaGFyICpkaXJwKTsKIHN0YXRpYyBzdHJ1Y3QgZGlybGlzdAkqZGlycF9z ZWFyY2goc3RydWN0IGRpcmxpc3QgKiwgY2hhciAqKTsKK3N0YXRpYyBpbnQJZG9fZXhwb3J0X21v dW50KHN0cnVjdCBleHBvcnRsaXN0ICosIHN0cnVjdCBzdGF0ZnMgKik7CiBzdGF0aWMgaW50CWRv X21vdW50KHN0cnVjdCBleHBvcnRsaXN0ICosIHN0cnVjdCBncm91cGxpc3QgKiwgaW50LAogCQkg ICAgc3RydWN0IHh1Y3JlZCAqLCBjaGFyICosIGludCwgc3RydWN0IHN0YXRmcyAqKTsKIHN0YXRp YyBpbnQJZG9fb3B0KGNoYXIgKiosIGNoYXIgKiosIHN0cnVjdCBleHBvcnRsaXN0ICosCiAJCSAg ICBzdHJ1Y3QgZ3JvdXBsaXN0ICosIGludCAqLCBpbnQgKiwgc3RydWN0IHh1Y3JlZCAqKTsKLXN0 YXRpYyBzdHJ1Y3QgZXhwb3J0bGlzdAkqZXhfc2VhcmNoKGZzaWRfdCAqKTsKK3N0YXRpYyBzdHJ1 Y3QgZXhwb3J0bGlzdAkqZXhfc2VhcmNoKGZzaWRfdCAqLCBzdHJ1Y3QgZXhwb3J0bGlzdGhlYWQg Kik7CiBzdGF0aWMgc3RydWN0IGV4cG9ydGxpc3QJKmdldF9leHAodm9pZCk7CiBzdGF0aWMgdm9p ZAlmcmVlX2RpcihzdHJ1Y3QgZGlybGlzdCAqKTsKIHN0YXRpYyB2b2lkCWZyZWVfZXhwKHN0cnVj dCBleHBvcnRsaXN0ICopOwogc3RhdGljIHZvaWQJZnJlZV9ncnAoc3RydWN0IGdyb3VwbGlzdCAq KTsKIHN0YXRpYyB2b2lkCWZyZWVfaG9zdChzdHJ1Y3QgaG9zdGxpc3QgKik7Ci1zdGF0aWMgdm9p ZAlnZXRfZXhwb3J0bGlzdCh2b2lkKTsKK3N0YXRpYyB2b2lkCWZyZWVfdjRyb290ZXhwKHZvaWQp Oworc3RhdGljIHZvaWQJZ2V0X2V4cG9ydGxpc3Rfb25lKGludCk7CitzdGF0aWMgdm9pZAlnZXRf ZXhwb3J0bGlzdChpbnQgcGFzc25vKTsKK3N0YXRpYyB2b2lkCXJlYWRfZXhwb3J0ZmlsZShpbnQg cGFzc25vKTsKK3N0YXRpYyB2b2lkCWluc2VydF9leHBvcnRzKHN0cnVjdCBleHBvcnRsaXN0ICos IHN0cnVjdCBleHBvcnRsaXN0aGVhZCAqKTsKK3N0YXRpYyB2b2lkCWZyZWVfZXhwb3J0cyhzdHJ1 Y3QgZXhwb3J0bGlzdGhlYWQgKik7CitzdGF0aWMgaW50CWNvbXBhcmVfbm1vdW50X2V4cG9ydGxp c3Qoc3RydWN0IGlvdmVjICosIGludCwgY2hhciAqKTsKK3N0YXRpYyBpbnQJY29tcGFyZV9leHBv cnQoc3RydWN0IGV4cG9ydGxpc3QgKiwgc3RydWN0IGV4cG9ydGxpc3QgKik7CitzdGF0aWMgaW50 CWNvbXBhcmVfY3JlZChzdHJ1Y3QgeHVjcmVkICosIHN0cnVjdCB4dWNyZWQgKik7CitzdGF0aWMg aW50CWNvbXBhcmVfc2VjZmxhdm9yKGludCAqLCBpbnQgKiwgaW50KTsKK3N0YXRpYyB2b2lkCWRl bGV0ZV9leHBvcnQoc3RydWN0IGlvdmVjICosIGludCwgc3RydWN0IHN0YXRmcyAqLCBjaGFyICop Owogc3RhdGljIGludAlnZXRfaG9zdChjaGFyICosIHN0cnVjdCBncm91cGxpc3QgKiwgc3RydWN0 IGdyb3VwbGlzdCAqKTsKIHN0YXRpYyBzdHJ1Y3QgaG9zdGxpc3QgKmdldF9odCh2b2lkKTsKIHN0 YXRpYyBpbnQJZ2V0X2xpbmUodm9pZCk7CkBAIC0yMDQsNyArMjI4LDcgQEAgc3RhdGljIGludAln ZXRfbmV0KGNoYXIgKiwgc3RydWN0IG5ldG1zawogc3RhdGljIHZvaWQJZ2V0ZXhwX2VycihzdHJ1 Y3QgZXhwb3J0bGlzdCAqLCBzdHJ1Y3QgZ3JvdXBsaXN0ICosIGNvbnN0IGNoYXIgKik7CiBzdGF0 aWMgc3RydWN0IGdyb3VwbGlzdAkqZ2V0X2dycCh2b2lkKTsKIHN0YXRpYyB2b2lkCWhhbmdfZGly cChzdHJ1Y3QgZGlybGlzdCAqLCBzdHJ1Y3QgZ3JvdXBsaXN0ICosCi0JCQkJc3RydWN0IGV4cG9y dGxpc3QgKiwgaW50KTsKKwkJICAgIHN0cnVjdCBleHBvcnRsaXN0ICosIGludCwgc3RydWN0IHh1 Y3JlZCAqLCBpbnQpOwogc3RhdGljIHZvaWQJaHVwaGFuZGxlcihpbnQgc2lnKTsKIHN0YXRpYyBp bnQJbWFrZW1hc2soc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UgKnNzcCwgaW50IGJpdGxlbik7CiBz dGF0aWMgdm9pZAltbnRzcnYoc3RydWN0IHN2Y19yZXEgKiwgU1ZDWFBSVCAqKTsKQEAgLTIyNyw5 ICsyNTEsMTEgQEAgc3RhdGljIGludAl4ZHJfZmhzKFhEUiAqLCBjYWRkcl90KTsKIHN0YXRpYyBp bnQJeGRyX21saXN0KFhEUiAqLCBjYWRkcl90KTsKIHN0YXRpYyB2b2lkCXRlcm1pbmF0ZShpbnQp OwogCi1zdGF0aWMgU0xJU1RfSEVBRCgsIGV4cG9ydGxpc3QpIGV4cGhlYWQgPSBTTElTVF9IRUFE X0lOSVRJQUxJWkVSKGV4cGhlYWQpOwotc3RhdGljIFNMSVNUX0hFQUQoLCBtb3VudGxpc3QpIG1s aGVhZCA9IFNMSVNUX0hFQURfSU5JVElBTElaRVIobWxoZWFkKTsKLXN0YXRpYyBzdHJ1Y3QgZ3Jv dXBsaXN0ICpncnBoZWFkOworI2RlZmluZQlFWFBIQVNIU0laRQkyNTYKKyNkZWZpbmUJRVhQSEFT SChmKQkoZm52XzMyX2J1ZigoZiksIHNpemVvZihmc2lkX3QpLCAwKSAlIEVYUEhBU0hTSVpFKQor c3RhdGljIHN0cnVjdCBleHBvcnRsaXN0aGVhZCBleHBoZWFkW0VYUEhBU0hTSVpFXTsKK3N0YXRp YyBzdHJ1Y3QgZXhwb3J0bGlzdGhlYWQgb2xkZXhwaGVhZFtFWFBIQVNIU0laRV07CitzdGF0aWMg U0xJU1RfSEVBRCgsIG1vdW50bGlzdCkgbWxoZWFkID0gU0xJU1RfSEVBRF9JTklUSUFMSVpFUigm bWxoZWFkKTsKIHN0YXRpYyBjaGFyICpleG5hbWVzX2RlZmF1bHRbMl0gPSB7IF9QQVRIX0VYUE9S VFMsIE5VTEwgfTsKIHN0YXRpYyBjaGFyICoqZXhuYW1lczsKIHN0YXRpYyBjaGFyICoqaG9zdHMg PSBOVUxMOwpAQCAtMjYwLDYgKzI4Niw4IEBAIHN0YXRpYyBpbnQgaGF2ZV92NiA9IDE7CiAKIHN0 YXRpYyBpbnQgdjRyb290X3BoYXNlID0gMDsKIHN0YXRpYyBjaGFyIHY0cm9vdF9kaXJwYXRoW1BB VEhfTUFYICsgMV07CitzdGF0aWMgc3RydWN0IGV4cG9ydGxpc3QgKnY0cm9vdF9lcCA9IE5VTEw7 CitzdGF0aWMgc3RydWN0IGdyb3VwbGlzdCAqdjRyb290X2dycCA9IE5VTEw7CiBzdGF0aWMgaW50 IGhhc19wdWJsaWNmaCA9IDA7CiAKIHN0YXRpYyBzdHJ1Y3QgcGlkZmggKnBmaCA9IE5VTEw7CkBA IC0zNjgsOSArMzk2LDEwIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWluX3BvcnRf dCBzdmNwb3J0OwogCWludCBjLCBrLCBzOwogCWludCBtYXhyZWMgPSBSUENfTUFYREFUQVNJWkU7 Ci0JaW50IGF0dGVtcHRfY250LCBwb3J0X2xlbiwgcG9ydF9wb3MsIHJldDsKKwlpbnQgYXR0ZW1w dF9jbnQsIGksIHBhc3NubywgcG9ydF9sZW4sIHBvcnRfcG9zLCByZXQ7CiAJY2hhciAqKnBvcnRf bGlzdDsKIAorCXBhc3NubyA9IDA7CiAJLyogQ2hlY2sgdGhhdCBhbm90aGVyIG1vdW50ZCBpc24n dCBhbHJlYWR5IHJ1bm5pbmcuICovCiAJcGZoID0gcGlkZmlsZV9vcGVuKF9QQVRIX01PVU5URFBJ RCwgMDYwMCwgJm90aGVycGlkKTsKIAlpZiAocGZoID09IE5VTEwpIHsKQEAgLTM4NSw3ICs0MTQs NyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAllbHNlCiAJCWNsb3NlKHMpOwogCi0J d2hpbGUgKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICIyZGVoOmxucDpyUyIpKSAhPSAtMSkKKwl3 aGlsZSAoKGMgPSBnZXRvcHQoYXJnYywgYXJndiwgIjJkZWg6SWxucDpyUyIpKSAhPSAtMSkKIAkJ c3dpdGNoIChjKSB7CiAJCWNhc2UgJzInOgogCQkJZm9yY2VfdjIgPSAxOwpAQCAtNDM3LDYgKzQ2 Niw5IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQljYXNlICdTJzoKIAkJCXN1c3Bl bmRfbmZzZCA9IDE7CiAJCQlicmVhazsKKwkJY2FzZSAnSSc6CisJCQlwYXNzbm8gPSAxOworCQkJ YnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQl1c2FnZSgpOwogCQl9CkBAIC00NDksNyArNDgxLDYgQEAg bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKIAlhcmdjIC09IG9wdGluZDsKIAlhcmd2ICs9 IG9wdGluZDsKLQlncnBoZWFkID0gKHN0cnVjdCBncm91cGxpc3QgKilOVUxMOwogCWlmIChhcmdj ID4gMCkKIAkJZXhuYW1lcyA9IGFyZ3Y7CiAJZWxzZQpAQCAtNDU3LDcgKzQ4OCwxNCBAQCBtYWlu KGludCBhcmdjLCBjaGFyICoqYXJndikKIAlvcGVubG9nKCJtb3VudGQiLCBMT0dfUElELCBMT0df REFFTU9OKTsKIAlpZiAoZGVidWcpCiAJCXdhcm54KCJnZXR0aW5nIGV4cG9ydCBsaXN0Iik7Ci0J Z2V0X2V4cG9ydGxpc3QoKTsKKworCS8qIEluaXRpYWxpemUgdGhlIGV4cG9ydCBsaXN0cyBhbmQg dGhlbiBwcm9jZXNzIHRoZSBleHBvcnRzIGZpbGUocykuICovCisJZm9yIChpID0gMDsgaSA8IEVY UEhBU0hTSVpFOyBpKyspIHsKKwkJU0xJU1RfSU5JVCgmZXhwaGVhZFtpXSk7CisJCVNMSVNUX0lO SVQoJm9sZGV4cGhlYWRbaV0pOworCX0KKwlnZXRfZXhwb3J0bGlzdCgwKTsKKwogCWlmIChkZWJ1 ZykKIAkJd2FybngoImdldHRpbmcgbW91bnQgbGlzdCIpOwogCWdldF9tb3VudGxpc3QoKTsKQEAg LTYyOCw3ICs2NjYsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkvKiBFeHBhbmQg c3ZjX3J1bigpIGhlcmUgc28gdGhhdCB3ZSBjYW4gY2FsbCBnZXRfZXhwb3J0bGlzdCgpLiAqLwog CWZvciAoOzspIHsKIAkJaWYgKGdvdF9zaWdodXApIHsKLQkJCWdldF9leHBvcnRsaXN0KCk7CisJ CQlnZXRfZXhwb3J0bGlzdChwYXNzbm8pOwogCQkJZ290X3NpZ2h1cCA9IDA7CiAJCX0KIAkJcmVh ZGZkcyA9IHN2Y19mZHNldDsKQEAgLTEwODcsNyArMTEyNSw3IEBAIG1udHNydihzdHJ1Y3Qgc3Zj X3JlcSAqcnFzdHAsIFNWQ1hQUlQgKnQKIAkJaWYgKGJhZCkKIAkJCWVwID0gTlVMTDsKIAkJZWxz ZQotCQkJZXAgPSBleF9zZWFyY2goJmZzYi5mX2ZzaWQpOworCQkJZXAgPSBleF9zZWFyY2goJmZz Yi5mX2ZzaWQsIGV4cGhlYWQpOwogCQlob3N0c2V0ID0gZGVmc2V0ID0gMDsKIAkJaWYgKGVwICYm IChjaGtfaG9zdChlcC0+ZXhfZGVmZGlyLCBzYWRkciwgJmRlZnNldCwgJmhvc3RzZXQsCiAJCSAg ICAmbnVtc2VjZmxhdm9ycywgJnNlY2ZsYXZvcnNwKSB8fApAQCAtMTMwMiwyMSArMTM0MCwyMyBA QCB4ZHJfZXhwbGlzdF9jb21tb24oWERSICp4ZHJzcCwgY2FkZHJfdCBjCiAJaW50IGZhbHNlID0g MDsKIAlpbnQgcHV0ZGVmOwogCXNpZ3NldF90IHNpZ2h1cF9tYXNrOworCWludCBpOwogCiAJc2ln ZW1wdHlzZXQoJnNpZ2h1cF9tYXNrKTsKIAlzaWdhZGRzZXQoJnNpZ2h1cF9tYXNrLCBTSUdIVVAp OwogCXNpZ3Byb2NtYXNrKFNJR19CTE9DSywgJnNpZ2h1cF9tYXNrLCBOVUxMKTsKIAotCVNMSVNU X0ZPUkVBQ0goZXAsICZleHBoZWFkLCBlbnRyaWVzKSB7Ci0JCXB1dGRlZiA9IDA7Ci0JCWlmIChw dXRfZXhsaXN0KGVwLT5leF9kaXJsLCB4ZHJzcCwgZXAtPmV4X2RlZmRpciwKLQkJCSAgICAgICAm cHV0ZGVmLCBicmllZikpCi0JCQlnb3RvIGVycm91dDsKLQkJaWYgKGVwLT5leF9kZWZkaXIgJiYg cHV0ZGVmID09IDAgJiYKLQkJCXB1dF9leGxpc3QoZXAtPmV4X2RlZmRpciwgeGRyc3AsIChzdHJ1 Y3QgZGlybGlzdCAqKU5VTEwsCi0JCQkmcHV0ZGVmLCBicmllZikpCi0JCQlnb3RvIGVycm91dDsK LQl9CisJZm9yIChpID0gMDsgaSA8IEVYUEhBU0hTSVpFOyBpKyspCisJCVNMSVNUX0ZPUkVBQ0go ZXAsICZleHBoZWFkW2ldLCBlbnRyaWVzKSB7CisJCQlwdXRkZWYgPSAwOworCQkJaWYgKHB1dF9l eGxpc3QoZXAtPmV4X2RpcmwsIHhkcnNwLCBlcC0+ZXhfZGVmZGlyLAorCQkJCSAgICAgICAmcHV0 ZGVmLCBicmllZikpCisJCQkJZ290byBlcnJvdXQ7CisJCQlpZiAoZXAtPmV4X2RlZmRpciAmJiBw dXRkZWYgPT0gMCAmJgorCQkJCXB1dF9leGxpc3QoZXAtPmV4X2RlZmRpciwgeGRyc3AsCisJCQkJ KHN0cnVjdCBkaXJsaXN0ICopTlVMTCwgJnB1dGRlZiwgYnJpZWYpKQorCQkJCWdvdG8gZXJyb3V0 OworCQl9CiAJc2lncHJvY21hc2soU0lHX1VOQkxPQ0ssICZzaWdodXBfbWFzaywgTlVMTCk7CiAJ aWYgKCF4ZHJfYm9vbCh4ZHJzcCwgJmZhbHNlKSkKIAkJcmV0dXJuICgwKTsKQEAgLTE0MTYsNyAr MTQ1Niw3IEBAIHN0YXRpYyBGSUxFICpleHBfZmlsZTsKICAqIEdldCB0aGUgZXhwb3J0IGxpc3Qg ZnJvbSBvbmUsIGN1cnJlbnRseSBvcGVuIGZpbGUKICAqLwogc3RhdGljIHZvaWQKLWdldF9leHBv cnRsaXN0X29uZSh2b2lkKQorZ2V0X2V4cG9ydGxpc3Rfb25lKGludCBwYXNzbm8pCiB7CiAJc3Ry dWN0IGV4cG9ydGxpc3QgKmVwOwogCXN0cnVjdCBncm91cGxpc3QgKmdycCwgKnRncnA7CkBAIC0x NTQwLDcgKzE1ODAsNyBAQCBnZXRfZXhwb3J0bGlzdF9vbmUodm9pZCkKIAkJCQkJICogU2VlIGlm IHRoaXMgZGlyZWN0b3J5IGlzIGFscmVhZHkKIAkJCQkJICogaW4gdGhlIGxpc3QuCiAJCQkJCSAq LwotCQkJCQllcCA9IGV4X3NlYXJjaCgmZnNiLmZfZnNpZCk7CisJCQkJCWVwID0gZXhfc2VhcmNo KCZmc2IuZl9mc2lkLCBleHBoZWFkKTsKIAkJCQkJaWYgKGVwID09IChzdHJ1Y3QgZXhwb3J0bGlz dCAqKU5VTEwpIHsKIAkJCQkJICAgIGVwID0gZ2V0X2V4cCgpOwogCQkJCQkgICAgZXAtPmV4X2Zz ID0gZnNiLmZfZnNpZDsKQEAgLTE2NTMsMTEgKzE2OTMsMTUgQEAgZ2V0X2V4cG9ydGxpc3Rfb25l KHZvaWQpCiAJCSAqIExvb3AgdGhyb3VnaCBob3N0cywgcHVzaGluZyB0aGUgZXhwb3J0cyBpbnRv IHRoZSBrZXJuZWwuCiAJCSAqIEFmdGVyIGxvb3AsIHRncnAgcG9pbnRzIHRvIHRoZSBzdGFydCBv ZiB0aGUgbGlzdCBhbmQKIAkJICogZ3JwIHBvaW50cyB0byB0aGUgbGFzdCBlbnRyeSBpbiB0aGUg bGlzdC4KKwkJICogRG8gbm90IGRvIHRoZSBkb19tb3VudCgpIGZvciBwYXNzbm8gPT0gMSwgc2lu Y2UgdGhlCisJCSAqIHNlY29uZCBwYXNzIHdpbGwgZG8gaXQsIGFzIHJlcXVpcmVkLgogCQkgKi8K IAkJZ3JwID0gdGdycDsKIAkJZG8gewotCQkJaWYgKGRvX21vdW50KGVwLCBncnAsIGV4ZmxhZ3Ms ICZhbm9uLCBkaXJwLCBkaXJwbGVuLAotCQkJICAgICZmc2IpKSB7CisJCQlncnAtPmdyX2V4Zmxh Z3MgPSBleGZsYWdzOworCQkJZ3JwLT5ncl9hbm9uID0gYW5vbjsKKwkJCWlmIChwYXNzbm8gIT0g MSAmJiBkb19tb3VudChlcCwgZ3JwLCBleGZsYWdzLCAmYW5vbiwKKwkJCSAgICBkaXJwLCBkaXJw bGVuLCAmZnNiKSkgewogCQkJCWdldGV4cF9lcnIoZXAsIHRncnAsIE5VTEwpOwogCQkJCWdvdG8g bmV4dGxpbmU7CiAJCQl9CkBAIC0xNjY4LDE1ICsxNzEyLDI2IEBAIGdldF9leHBvcnRsaXN0X29u ZSh2b2lkKQogCQkgKi8KIAkJaWYgKHY0cm9vdF9waGFzZSA+IDAgJiYgdjRyb290X3BoYXNlIDw9 IDIpIHsKIAkJCS8qCi0JCQkgKiBTaW5jZSB0aGVzZSBzdHJ1Y3R1cmVzIGFyZW4ndCB1c2VkIGJ5 IG1vdW50ZCwKKwkJCSAqIFRoZXNlIHN0cnVjdHVyZXMgYXJlIHVzZWQgZm9yIHRoZSAiLUkiIHJl bG9hZCwKKwkJCSAqIHNvIHNhdmUgdGhlbSBmb3IgdGhhdCBjYXNlLiAgT3RoZXJ3aXNlLCBqdXN0 CiAJCQkgKiBmcmVlIHRoZW0gdXAgbm93LgogCQkJICovCi0JCQlpZiAoZXAgIT0gTlVMTCkKLQkJ CQlmcmVlX2V4cChlcCk7Ci0JCQl3aGlsZSAodGdycCAhPSBOVUxMKSB7Ci0JCQkJZ3JwID0gdGdy cDsKLQkJCQl0Z3JwID0gdGdycC0+Z3JfbmV4dDsKLQkJCQlmcmVlX2dycChncnApOworCQkJaWYg KHBhc3NubyA9PSAxKSB7CisJCQkJaWYgKHY0cm9vdF9lcCAhPSBOVUxMKSB7CisJCQkJCWdldGV4 cF9lcnIoZXAsIHRncnAsCisJCQkJCSAgICAibXVsdGlwbGUgVjQgbGluZXMiKTsKKwkJCQkJZ290 byBuZXh0bGluZTsKKwkJCQl9CisJCQkJdjRyb290X2VwID0gZXA7CisJCQkJdjRyb290X2dycCA9 IHRncnA7CisJCQl9IGVsc2UgeworCQkJCWlmIChlcCAhPSBOVUxMKQorCQkJCQlmcmVlX2V4cChl cCk7CisJCQkJd2hpbGUgKHRncnAgIT0gTlVMTCkgeworCQkJCQlncnAgPSB0Z3JwOworCQkJCQl0 Z3JwID0gdGdycC0+Z3JfbmV4dDsKKwkJCQkJZnJlZV9ncnAoZ3JwKTsKKwkJCQl9CiAJCQl9CiAJ CQlnb3RvIG5leHRsaW5lOwogCQl9CkBAIC0xNjg1LDE3ICsxNzQwLDE3IEBAIGdldF9leHBvcnRs aXN0X29uZSh2b2lkKQogCQkgKiBTdWNjZXNzLiBVcGRhdGUgdGhlIGRhdGEgc3RydWN0dXJlcy4K IAkJICovCiAJCWlmIChoYXNfaG9zdCkgewotCQkJaGFuZ19kaXJwKGRpcmhlYWQsIHRncnAsIGVw LCBvcHRfZmxhZ3MpOwotCQkJZ3JwLT5ncl9uZXh0ID0gZ3JwaGVhZDsKLQkJCWdycGhlYWQgPSB0 Z3JwOworCQkJaGFuZ19kaXJwKGRpcmhlYWQsIHRncnAsIGVwLCBvcHRfZmxhZ3MsICZhbm9uLCBl eGZsYWdzKTsKKwkJCWdycC0+Z3JfbmV4dCA9IGVwLT5leF9ncnBoZWFkOworCQkJZXAtPmV4X2dy cGhlYWQgPSB0Z3JwOwogCQl9IGVsc2UgewogCQkJaGFuZ19kaXJwKGRpcmhlYWQsIChzdHJ1Y3Qg Z3JvdXBsaXN0ICopTlVMTCwgZXAsCi0JCQkJb3B0X2ZsYWdzKTsKKwkJCQlvcHRfZmxhZ3MsICZh bm9uLCBleGZsYWdzKTsKIAkJCWZyZWVfZ3JwKGdycCk7CiAJCX0KIAkJZGlyaGVhZCA9IChzdHJ1 Y3QgZGlybGlzdCAqKU5VTEw7CiAJCWlmICgoZXAtPmV4X2ZsYWcgJiBFWF9MSU5LRUQpID09IDAp IHsKLQkJCVNMSVNUX0lOU0VSVF9IRUFEKCZleHBoZWFkLCBlcCwgZW50cmllcyk7CisJCQlpbnNl cnRfZXhwb3J0cyhlcCwgZXhwaGVhZCk7CiAKIAkJCWVwLT5leF9mbGFnIHw9IEVYX0xJTktFRDsK IAkJfQpAQCAtMTcxMiw0NSArMTc2Nyw0NiBAQCBuZXh0bGluZToKICAqIEdldCB0aGUgZXhwb3J0 IGxpc3QgZnJvbSBhbGwgc3BlY2lmaWVkIGZpbGVzCiAgKi8KIHN0YXRpYyB2b2lkCi1nZXRfZXhw b3J0bGlzdCh2b2lkKQorZ2V0X2V4cG9ydGxpc3QoaW50IHBhc3NubykKIHsKLQlzdHJ1Y3QgZXhw b3J0bGlzdCAqZXAsICplcDI7Ci0Jc3RydWN0IGdyb3VwbGlzdCAqZ3JwLCAqdGdycDsKIAlzdHJ1 Y3QgZXhwb3J0X2FyZ3MgZXhwb3J0OwogCXN0cnVjdCBpb3ZlYyAqaW92OwogCXN0cnVjdCBzdGF0 ZnMgKmZzcCwgKm1udGJ1ZnA7Ci0Jc3RydWN0IHh2ZnNjb25mIHZmYzsKIAljaGFyIGVycm1zZ1sy NTVdOwogCWludCBudW0sIGk7CiAJaW50IGlvdmxlbjsKLQlpbnQgZG9uZTsKIAlzdHJ1Y3QgbmZz ZXhfYXJncyBlYXJnczsKIAotCWlmIChzdXNwZW5kX25mc2QgIT0gMCkKLQkJKHZvaWQpbmZzc3Zj KE5GU1NWQ19TVVNQRU5ETkZTRCwgTlVMTCk7CitzeXNsb2coTE9HX0VSUiwgInBhc3Nubz0lZCIs IHBhc3Nubyk7CiAJdjRyb290X2RpcnBhdGhbMF0gPSAnXDAnOworCWZyZWVfdjRyb290ZXhwKCk7 CisJaWYgKHBhc3NubyA9PSAxKSB7CisJCS8qCisJCSAqIFNhdmUgdGhlIGN1cnJlbnQgbGlzdHMg YXMgb2xkIG9uZXMsIHNvIHRoYXQgdGhlIG5ldyBsaXN0cworCQkgKiBjYW4gYmUgY29tcGFyZWQg d2l0aCB0aGUgb2xkIG9uZXMgaW4gdGhlIDJuZCBwYXNzLgorCQkgKi8KKwkJZm9yIChpID0gMDsg aSA8IEVYUEhBU0hTSVpFOyBpKyspIHsKKwkJCVNMSVNUX0ZJUlNUKCZvbGRleHBoZWFkW2ldKSA9 IFNMSVNUX0ZJUlNUKCZleHBoZWFkW2ldKTsKKwkJCVNMSVNUX0lOSVQoJmV4cGhlYWRbaV0pOwor CQl9CisKKwkJLyogUmVhZCB0aGUgZXhwb3J0IGZpbGUocykgYW5kIHByb2Nlc3MgdGhlbSAqLwor CQlyZWFkX2V4cG9ydGZpbGUocGFzc25vKTsKK3N5c2xvZyhMT0dfRVJSLCAicmVhZGV4cDEiKTsK Kwl9IGVsc2UgeworCQkvKiBKdXN0IG1ha2UgdGhlIG9sZCBsaXN0cyBlbXB0eS4gKi8KKwkJZm9y IChpID0gMDsgaSA8IEVYUEhBU0hTSVpFOyBpKyspCisJCQlTTElTVF9JTklUKCZvbGRleHBoZWFk W2ldKTsKKwl9CisKIAliemVybygmZXhwb3J0LCBzaXplb2YoZXhwb3J0KSk7CiAJZXhwb3J0LmV4 X2ZsYWdzID0gTU5UX0RFTEVYUE9SVDsKIAlpb3YgPSBOVUxMOwogCWlvdmxlbiA9IDA7CiAJYnpl cm8oZXJybXNnLCBzaXplb2YoZXJybXNnKSk7CiAKLQkvKgotCSAqIEZpcnN0LCBnZXQgcmlkIG9m IHRoZSBvbGQgbGlzdAotCSAqLwotCVNMSVNUX0ZPUkVBQ0hfU0FGRShlcCwgJmV4cGhlYWQsIGVu dHJpZXMsIGVwMikgewotCQlTTElTVF9SRU1PVkUoJmV4cGhlYWQsIGVwLCBleHBvcnRsaXN0LCBl bnRyaWVzKTsKLQkJZnJlZV9leHAoZXApOwotCX0KLQotCWdycCA9IGdycGhlYWQ7Ci0Jd2hpbGUg KGdycCkgewotCQl0Z3JwID0gZ3JwOwotCQlncnAgPSBncnAtPmdyX25leHQ7Ci0JCWZyZWVfZ3Jw KHRncnApOwotCX0KLQlncnBoZWFkID0gKHN0cnVjdCBncm91cGxpc3QgKilOVUxMOwotCisJaWYg KHN1c3BlbmRfbmZzZCAhPSAwKQorCQkodm9pZCluZnNzdmMoTkZTU1ZDX1NVU1BFTkRORlNELCBO VUxMKTsKIAkvKgogCSAqIGFuZCB0aGUgb2xkIFY0IHJvb3QgZGlyLgogCSAqLwpAQCAtMTc2NSw2 MiArMTgyMSw1MiBAQCBnZXRfZXhwb3J0bGlzdCh2b2lkKQogCSAqLwogCWhhc19wdWJsaWNmaCA9 IDA7CiAKKwlidWlsZF9pb3ZlYygmaW92LCAmaW92bGVuLCAiZnN0eXBlIiwgTlVMTCwgMCk7CisJ YnVpbGRfaW92ZWMoJmlvdiwgJmlvdmxlbiwgImZzcGF0aCIsIE5VTEwsIDApOworCWJ1aWxkX2lv dmVjKCZpb3YsICZpb3ZsZW4sICJmcm9tIiwgTlVMTCwgMCk7CisJYnVpbGRfaW92ZWMoJmlvdiwg JmlvdmxlbiwgInVwZGF0ZSIsIE5VTEwsIDApOworCWJ1aWxkX2lvdmVjKCZpb3YsICZpb3ZsZW4s ICJleHBvcnQiLCAmZXhwb3J0LAorCSAgICBzaXplb2YoZXhwb3J0KSk7CisJYnVpbGRfaW92ZWMo JmlvdiwgJmlvdmxlbiwgImVycm1zZyIsIGVycm1zZywKKwkgICAgc2l6ZW9mKGVycm1zZykpOwor CiAJLyoKLQkgKiBBbmQgZGVsZXRlIGV4cG9ydHMgdGhhdCBhcmUgaW4gdGhlIGtlcm5lbCBmb3Ig YWxsIGxvY2FsCi0JICogZmlsZXN5c3RlbXMuCi0JICogWFhYOiBTaG91bGQga25vdyBob3cgdG8g aGFuZGxlIGFsbCBsb2NhbCBleHBvcnRhYmxlIGZpbGVzeXN0ZW1zLgorCSAqIEZvciBwYXNzbm8g PT0gMSwgY29tcGFyZSB0aGUgb2xkIGFuZCBuZXcgbGlzdHMgdXBkYXRpbmcgdGhlIGtlcm5lbAor CSAqIGV4cG9ydHMgZm9yIGFueSBjYXNlcyB0aGF0IGhhdmUgY2hhbmdlZC4KKwkgKiBUaGlzIGNh bGwgaXMgZG9pbmcgdGhlIHNlY29uZCBwYXNzIHRocm91Z2ggdGhlIGxpc3RzLgorCSAqIElmIGl0 IGZhaWxzLCBmYWxsIGJhY2sgb24gdGhlIGJ1bGsgcmVsb2FkLgogCSAqLwotCW51bSA9IGdldG1u dGluZm8oJm1udGJ1ZnAsIE1OVF9OT1dBSVQpOwotCi0JaWYgKG51bSA+IDApIHsKLQkJYnVpbGRf aW92ZWMoJmlvdiwgJmlvdmxlbiwgImZzdHlwZSIsIE5VTEwsIDApOwotCQlidWlsZF9pb3ZlYygm aW92LCAmaW92bGVuLCAiZnNwYXRoIiwgTlVMTCwgMCk7Ci0JCWJ1aWxkX2lvdmVjKCZpb3YsICZp b3ZsZW4sICJmcm9tIiwgTlVMTCwgMCk7Ci0JCWJ1aWxkX2lvdmVjKCZpb3YsICZpb3ZsZW4sICJ1 cGRhdGUiLCBOVUxMLCAwKTsKLQkJYnVpbGRfaW92ZWMoJmlvdiwgJmlvdmxlbiwgImV4cG9ydCIs ICZleHBvcnQsIHNpemVvZihleHBvcnQpKTsKLQkJYnVpbGRfaW92ZWMoJmlvdiwgJmlvdmxlbiwg ImVycm1zZyIsIGVycm1zZywgc2l6ZW9mKGVycm1zZykpOwotCX0KLQotCWZvciAoaSA9IDA7IGkg PCBudW07IGkrKykgewotCQlmc3AgPSAmbW50YnVmcFtpXTsKLQkJaWYgKGdldHZmc2J5bmFtZShm c3AtPmZfZnN0eXBlbmFtZSwgJnZmYykgIT0gMCkgewotCQkJc3lzbG9nKExPR19FUlIsICJnZXR2 ZnNieW5hbWUoKSBmYWlsZWQgZm9yICVzIiwKLQkJCSAgICBmc3AtPmZfZnN0eXBlbmFtZSk7Ci0J CQljb250aW51ZTsKLQkJfQotCisJaWYgKHBhc3NubyA9PSAxICYmIGNvbXBhcmVfbm1vdW50X2V4 cG9ydGxpc3QoaW92LCBpb3ZsZW4sIGVycm1zZykgPT0KKwkgICAgMCkgeworc3lzbG9nKExPR19F UlIsICJjb21wYXJlb2siKTsKKwkJLyogRnJlZSB1cCB0aGUgb2xkIGxpc3RzLiAqLworCQlmcmVl X2V4cG9ydHMob2xkZXhwaGVhZCk7CisJfSBlbHNlIHsKK3N5c2xvZyhMT0dfRVJSLCAiZG9pbiBw YXNzbm89MCIpOwogCQkvKgotCQkgKiBXZSBkbyBub3QgbmVlZCB0byBkZWxldGUgImV4cG9ydCIg ZmxhZyBmcm9tCi0JCSAqIGZpbGVzeXN0ZW1zIHRoYXQgZG8gbm90IGhhdmUgaXQgc2V0LgorCQkg KiBGaXJzdCwgZ2V0IHJpZCBvZiB0aGUgb2xkIGxpc3RzLgogCQkgKi8KLQkJaWYgKCEoZnNwLT5m X2ZsYWdzICYgTU5UX0VYUE9SVEVEKSkKLQkJICAgIGNvbnRpbnVlOworCQlmcmVlX2V4cG9ydHMo ZXhwaGVhZCk7CisJCWZyZWVfZXhwb3J0cyhvbGRleHBoZWFkKTsKKwkJZnJlZV92NHJvb3RleHAo KTsKKwogCQkvKgotCQkgKiBEbyBub3QgZGVsZXRlIGV4cG9ydCBmb3IgbmV0d29yayBmaWxlc3lz dGVtIGJ5Ci0JCSAqIHBhc3NpbmcgImV4cG9ydCIgYXJnIHRvIG5tb3VudCgpLgotCQkgKiBJdCBv bmx5IG1ha2VzIHNlbnNlIHRvIGRvIHRoaXMgZm9yIGxvY2FsIGZpbGVzeXN0ZW1zLgorCQkgKiBB bmQgZGVsZXRlIGV4cG9ydHMgdGhhdCBhcmUgaW4gdGhlIGtlcm5lbCBmb3IgYWxsIGxvY2FsCisJ CSAqIGZpbGVzeXN0ZW1zLgorCQkgKiBYWFg6IFNob3VsZCBrbm93IGhvdyB0byBoYW5kbGUgYWxs IGxvY2FsIGV4cG9ydGFibGUKKwkJICogZmlsZXN5c3RlbXMuCiAJCSAqLwotCQlpZiAodmZjLnZm Y19mbGFncyAmIFZGQ0ZfTkVUV09SSykKLQkJCWNvbnRpbnVlOwotCi0JCWlvdlsxXS5pb3ZfYmFz ZSA9IGZzcC0+Zl9mc3R5cGVuYW1lOwotCQlpb3ZbMV0uaW92X2xlbiA9IHN0cmxlbihmc3AtPmZf ZnN0eXBlbmFtZSkgKyAxOwotCQlpb3ZbM10uaW92X2Jhc2UgPSBmc3AtPmZfbW50b25uYW1lOwot CQlpb3ZbM10uaW92X2xlbiA9IHN0cmxlbihmc3AtPmZfbW50b25uYW1lKSArIDE7Ci0JCWlvdls1 XS5pb3ZfYmFzZSA9IGZzcC0+Zl9tbnRmcm9tbmFtZTsKLQkJaW92WzVdLmlvdl9sZW4gPSBzdHJs ZW4oZnNwLT5mX21udGZyb21uYW1lKSArIDE7Ci0JCWVycm1zZ1swXSA9ICdcMCc7Ci0KLQkJLyoK LQkJICogRVhERVYgaXMgcmV0dXJuZWQgd2hlbiBwYXRoIGV4aXN0cyBidXQgaXMgbm90IGEKLQkJ ICogbW91bnQgcG9pbnQuICBNYXkgaGFwcGVucyBpZiByYWNlZCB3aXRoIHVubW91bnQuCi0JCSAq LwotCQlpZiAobm1vdW50KGlvdiwgaW92bGVuLCBmc3AtPmZfZmxhZ3MpIDwgMCAmJgotCQkgICAg ZXJybm8gIT0gRU5PRU5UICYmIGVycm5vICE9IEVOT1RTVVAgJiYgZXJybm8gIT0gRVhERVYpIHsK LQkJCXN5c2xvZyhMT0dfRVJSLAotCQkJICAgICJjYW4ndCBkZWxldGUgZXhwb3J0cyBmb3IgJXM6 ICVtICVzIiwKLQkJCSAgICBmc3AtPmZfbW50b25uYW1lLCBlcnJtc2cpOworCQludW0gPSBnZXRt bnRpbmZvKCZtbnRidWZwLCBNTlRfTk9XQUlUKTsKKwkKKwkJZm9yIChpID0gMDsgaSA8IG51bTsg aSsrKSB7CisJCQlmc3AgPSAmbW50YnVmcFtpXTsKKwkJCWRlbGV0ZV9leHBvcnQoaW92LCBpb3Zs ZW4sIGZzcCwgZXJybXNnKTsKIAkJfQorCisKKwkJLyogUmVhZCB0aGUgZXhwb3J0IGZpbGUocykg YW5kIHByb2Nlc3MgdGhlbSAqLworCQlyZWFkX2V4cG9ydGZpbGUoMCk7CitzeXNsb2coTE9HX0VS UiwgInJlYWRleHAwIik7CiAJfQogCiAJaWYgKGlvdiAhPSBOVUxMKSB7CkBAIC0xODM4LDYgKzE4 ODQsMjUgQEAgZ2V0X2V4cG9ydGxpc3Qodm9pZCkKIAl9CiAKIAkvKgorCSAqIElmIHRoZXJlIHdh cyBubyBwdWJsaWMgZmgsIGNsZWFyIGFueSBwcmV2aW91cyBvbmUgc2V0LgorCSAqLworCWlmICho YXNfcHVibGljZmggPT0gMCkKKwkJKHZvaWQpIG5mc3N2YyhORlNTVkNfTk9QVUJMSUNGSCwgTlVM TCk7CisKKwkvKiBSZXN1bWUgdGhlIG5mc2QuIElmIHRoZXkgd2VyZW4ndCBzdXNwZW5kZWQsIHRo aXMgaXMgaGFybWxlc3MuICovCisJKHZvaWQpbmZzc3ZjKE5GU1NWQ19SRVNVTUVORlNELCBOVUxM KTsKK3N5c2xvZyhMT0dfRVJSLCAiZW8gZ2V0X2V4cG9ydGxpc3QiKTsKK30KKworLyoKKyAqIFJl YWQgdGhlIGV4cG9ydHMgZmlsZShzKSBhbmQgY2FsbCBnZXRfZXhwb3J0bGlzdF9vbmUoKSBmb3Ig ZWFjaCBsaW5lLgorICovCitzdGF0aWMgdm9pZAorcmVhZF9leHBvcnRmaWxlKGludCBwYXNzbm8p Cit7CisJaW50IGRvbmUsIGk7CisKKwkvKgogCSAqIFJlYWQgaW4gdGhlIGV4cG9ydHMgZmlsZSBh bmQgYnVpbGQgdGhlIGxpc3QsIGNhbGxpbmcKIAkgKiBubW91bnQoKSBhcyB3ZSBnbyBhbG9uZyB0 byBwdXNoIHRoZSBleHBvcnQgcnVsZXMgaW50byB0aGUga2VybmVsLgogCSAqLwpAQCAtMTg0OSw3 ICsxOTE0LDcgQEAgZ2V0X2V4cG9ydGxpc3Qodm9pZCkKIAkJCXN5c2xvZyhMT0dfV0FSTklORywg ImNhbid0IG9wZW4gJXMiLCBleG5hbWVzW2ldKTsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCWdldF9l eHBvcnRsaXN0X29uZSgpOworCQlnZXRfZXhwb3J0bGlzdF9vbmUocGFzc25vKTsKIAkJZmNsb3Nl KGV4cF9maWxlKTsKIAkJZG9uZSsrOwogCX0KQEAgLTE4NTcsMTUgKzE5MjIsMjgwIEBAIGdldF9l eHBvcnRsaXN0KHZvaWQpCiAJCXN5c2xvZyhMT0dfRVJSLCAiY2FuJ3Qgb3BlbiBhbnkgZXhwb3J0 cyBmaWxlIik7CiAJCWV4aXQoMik7CiAJfQorfQorCisvKgorICogQ29tcGFyZSB0aGUgZXhwb3J0 IGxpc3RzIGFnYWluc3QgdGhlIG9sZCBvbmVzIGFuZCBkbyBubW91bnQoKSBvcGVyYXRpb25zCisg KiBmb3IgYW55IGNhc2VzIHRoYXQgaGF2ZSBjaGFuZ2VkLiAgVGhpcyBhdm9pZHMgZG9pbmcgbm1v dW50KCkgZm9yIGVudHJpZXMKKyAqIHRoYXQgaGF2ZSBub3QgY2hhbmdlZC4KKyAqIFJldHVybiAw IHVwb24gc3VjY2VzcywgMSBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbnQKK2NvbXBhcmVfbm1v dW50X2V4cG9ydGxpc3Qoc3RydWN0IGlvdmVjICppb3YsIGludCBpb3ZsZW4sIGNoYXIgKmVycm1z ZykKK3sKKwlzdHJ1Y3QgZXhwb3J0bGlzdCAqZXAsICpvZXA7CisJc3RydWN0IGdyb3VwbGlzdCAq Z3JwOworCXN0cnVjdCBzdGF0ZnMgZnMsIG9mczsKKwlpbnQgaSwgcmV0OwogCiAJLyoKLQkgKiBJ ZiB0aGVyZSB3YXMgbm8gcHVibGljIGZoLCBjbGVhciBhbnkgcHJldmlvdXMgb25lIHNldC4KKwkg KiBMb29wIHRocm91Z2ggdGhlIGN1cnJlbnQgbGlzdCBhbmQgbG9vayBmb3IgYW4gZW50cnkgaW4g dGhlIG9sZAorCSAqIGxpc3QuCisJICogSWYgZm91bmQsIGNoZWNrIHRvIHNlZSBpZiBpdCB0aGUg c2FtZS4KKwkgKiAgICAgICAgSWYgaXQgaXMgbm90IHRoZSBzYW1lLCBkZWxldGUgYW5kIHJlLWV4 cG9ydC4KKwkgKiAgICAgICAgVGhlbiBtYXJrIGl0IGRvbmUgb24gdGhlIG9sZCBsaXN0LgorCSAq IGVsc2UgKG5vdCBmb3VuZCkKKwkgKiAgICAgICAgZXhwb3J0IGl0LgorCSAqIEFueSBlbnRyaWVz IGxlZnQgaW4gdGhlIG9sZCBsaXN0IGFmdGVyIHByb2Nlc3NpbmcgbXVzdCBoYXZlIHRoZWlyCisJ ICogZXhwb3J0cyBkZWxldGVkLgogCSAqLwotCWlmIChoYXNfcHVibGljZmggPT0gMCkKLQkJKHZv aWQpIG5mc3N2YyhORlNTVkNfTk9QVUJMSUNGSCwgTlVMTCk7CisJZm9yIChpID0gMDsgaSA8IEVY UEhBU0hTSVpFOyBpKyspCisJCVNMSVNUX0ZPUkVBQ0goZXAsICZleHBoZWFkW2ldLCBlbnRyaWVz KSB7CitzeXNsb2coTE9HX0VSUiwgImZvcmVhY2ggZXAiKTsKKwkJCWlmIChzdGF0ZnMoZXAtPmV4 X2ZzZGlyLCAmZnMpIDwgMCkKKwkJCQlyZXR1cm4gKDEpOworc3lzbG9nKExPR19FUlIsICJmc3Yw PSVkIGZzdjE9JWQiLCBmcy5mX2ZzaWQudmFsWzBdLCBmcy5mX2ZzaWQudmFsWzFdKTsKKwkJCW9l cCA9IGV4X3NlYXJjaCgmZXAtPmV4X2ZzLCBvbGRleHBoZWFkKTsKKwkJCWlmIChvZXAgIT0gTlVM TCkgeworCQkJCS8qCisJCQkJICogU3RhdGZzIGJvdGggZmlsZSBzeXN0ZW1zIGFuZCBzYW5pdHkg Y2hlY2sKKwkJCQkgKiB0aGF0IHRoZXkgc3RpbGwgcmVmZXIgdG8gdGhlIHNhbWUgZmlsZQorCQkJ CSAqIHN5c3RlbS4KKwkJCQkgKiBJZiBub3QsIHJldHVybiAxIHNvIHRoYXQgdGhlIHJlbG9hZCBv ZiB0aGUKKwkJCQkgKiBleHBvcnRzIHdpbGwgYmUgZG9uZSBpbiBidWxrLCB0aGUKKwkJCQkgKiBw YXNzbm8gPT0gMCB3YXkuCisJCQkJICovCitzeXNsb2coTE9HX0VSUiwgImZuZCBleCIpOworCQkJ CWlmIChzdGF0ZnMob2VwLT5leF9mc2RpciwgJm9mcykgPCAwIHx8CisJCQkJICAgIGVwLT5leF9m cy52YWxbMF0gIT0gZnMuZl9mc2lkLnZhbFswXSB8fAorCQkJCSAgICBlcC0+ZXhfZnMudmFsWzFd ICE9IGZzLmZfZnNpZC52YWxbMV0gfHwKKwkJCQkgICAgZnMuZl9mc2lkLnZhbFswXSAhPSBvZnMu Zl9mc2lkLnZhbFswXSB8fAorCQkJCSAgICBmcy5mX2ZzaWQudmFsWzFdICE9IG9mcy5mX2ZzaWQu dmFsWzFdKQorCQkJCQlyZXR1cm4gKDEpOworCQkJCS8qCisJCQkJICogVGVzdCB0byBzZWUgaWYg dGhlIGVudHJ5IGlzIHRoZSBzYW1lLgorCQkJCSAqIElmIG5vdCB0aGUgc2FtZSBkZWxldGUgZXhw b3J0cyBhbmQKKwkJCQkgKiByZS1leHBvcnQuCisJCQkJICovCitzeXNsb2coTE9HX0VSUiwgImF0 IGNvbXBhcmUiKTsKKwkJCQlpZiAoY29tcGFyZV9leHBvcnQoZXAsIG9lcCkgIT0gMCkgeworCQkJ CQlkZWxldGVfZXhwb3J0KGlvdiwgaW92bGVuLCAmZnMsIGVycm1zZyk7CisJCQkJCXJldCA9IGRv X2V4cG9ydF9tb3VudChlcCwgJmZzKTsKKwkJCQkJaWYgKHJldCAhPSAwKQorCQkJCQkJcmV0dXJu IChyZXQpOworCQkJCX0KKwkJCQlvZXAtPmV4X2ZsYWcgfD0gRVhfRE9ORTsKK3N5c2xvZyhMT0df RVJSLCAiZXhkb25lIik7CisJCQl9IGVsc2Ugeworc3lzbG9nKExPR19FUlIsICJub3QgZm5kIHNv IGV4Iik7CisJCQkJLyogTm90IGZvdW5kLCBzbyBkbyBleHBvcnQuICovCisJCQkJcmV0ID0gZG9f ZXhwb3J0X21vdW50KGVwLCAmZnMpOworCQkJCWlmIChyZXQgIT0gMCkKKwkJCQkJcmV0dXJuIChy ZXQpOworCQkJfQorCQl9CiAKLQkvKiBSZXN1bWUgdGhlIG5mc2QuIElmIHRoZXkgd2VyZW4ndCBz dXNwZW5kZWQsIHRoaXMgaXMgaGFybWxlc3MuICovCi0JKHZvaWQpbmZzc3ZjKE5GU1NWQ19SRVNV TUVORlNELCBOVUxMKTsKKwkvKiBEZWxldGUgZXhwb3J0cyBub3QgZG9uZS4gKi8KKwlmb3IgKGkg PSAwOyBpIDwgRVhQSEFTSFNJWkU7IGkrKykKKwkJU0xJU1RfRk9SRUFDSChvZXAsICZvbGRleHBo ZWFkW2ldLCBlbnRyaWVzKSB7CisJCQlpZiAoKG9lcC0+ZXhfZmxhZyAmIEVYX0RPTkUpID09IDAp IHsKK3N5c2xvZyhMT0dfRVJSLCAibm90IGRvbmUgZGVsZXRlIik7CisJCQkJaWYgKHN0YXRmcyhv ZXAtPmV4X2ZzZGlyLCAmb2ZzKSA+PSAwICYmCisJCQkJICAgIG9lcC0+ZXhfZnMudmFsWzBdID09 IG9mcy5mX2ZzaWQudmFsWzBdICYmCisJCQkJICAgIG9lcC0+ZXhfZnMudmFsWzFdID09IG9mcy5m X2ZzaWQudmFsWzFdKQorc3lzbG9nKExPR19FUlIsICJkbyBkZWxldGUiKTsKKwkJCQkJZGVsZXRl X2V4cG9ydChpb3YsIGlvdmxlbiwgJm9mcywgZXJybXNnKTsKKwkJCX0KKwkJfQorCisJLyogRG8g dGhlIFY0IHJvb3QgZXhwb3J0cywgYXMgcmVxdWlyZWQuICovCisJZ3JwID0gdjRyb290X2dycDsK Kwl2NHJvb3RfcGhhc2UgPSAyOworCXdoaWxlICh2NHJvb3RfZXAgIT0gTlVMTCAmJiBncnAgIT0g TlVMTCkgeworc3lzbG9nKExPR19FUlIsICJ2NGV4IHBhdGg9JXMgZ3JfdHlwZT0weCV4IGdyX2V4 ZmxhZ3M9MHgleCIsIHY0cm9vdF9kaXJwYXRoLCBncnAtPmdyX3R5cGUsIGdycC0+Z3JfZXhmbGFn cyk7CitzeXNsb2coTE9HX0VSUiwgInY0cm9vdGQ9JXMiLCB2NHJvb3RfZGlycGF0aCk7CisJCXJl dCA9IGRvX21vdW50KHY0cm9vdF9lcCwgZ3JwLCBncnAtPmdyX2V4ZmxhZ3MsICZncnAtPmdyX2Fu b24sCisJCSAgICB2NHJvb3RfZGlycGF0aCwgc3RybGVuKHY0cm9vdF9kaXJwYXRoKSwgJmZzKTsK KwkJaWYgKHJldCAhPSAwKSB7CisJCQl2NHJvb3RfcGhhc2UgPSAwOworCQkJcmV0dXJuIChyZXQp OworCQl9CisJCWdycCA9IGdycC0+Z3JfbmV4dDsKKwl9CisJdjRyb290X3BoYXNlID0gMDsKKwlm cmVlX3Y0cm9vdGV4cCgpOworCXJldHVybiAoMCk7Cit9CisKKy8qCisgKiBDb21wYXJlIG9sZCBh bmQgY3VycmVudCBleHBvcnRsaXN0IGVudHJpZXMgZm9yIHRoZSBmc2lkIGFuZCByZXR1cm4gMAor ICogaWYgdGhleSBhcmUgdGhlIHNhbWUsIDEgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50Citj b21wYXJlX2V4cG9ydChzdHJ1Y3QgZXhwb3J0bGlzdCAqZXAsIHN0cnVjdCBleHBvcnRsaXN0ICpv ZXApCit7CisJc3RydWN0IGdyb3VwbGlzdCAqZ3JwLCAqb2dycDsKKworCWlmIChzdHJjbXAoZXAt PmV4X2ZzZGlyLCBvZXAtPmV4X2ZzZGlyKSAhPSAwKQorCQlyZXR1cm4gKDEpOworCWlmICgoZXAt PmV4X2RlZmRpciAhPSBOVUxMICYmIG9lcC0+ZXhfZGVmZGlyID09IE5VTEwpIHx8CisJICAgIChl cC0+ZXhfZGVmZGlyID09IE5VTEwgJiYgb2VwLT5leF9kZWZkaXIgIT0gTlVMTCkpCisJCXJldHVy biAoMSk7CisJaWYgKGVwLT5leF9kZWZkaXIgIT0gTlVMTCkgeworCQlpZiAoKGVwLT5leF9kZWZk aXItPmRwX2ZsYWcgJiBEUF9ERUZTRVQpICE9IDApIHsKKwkJCWlmICgob2VwLT5leF9kZWZkaXIt PmRwX2ZsYWcgJiBEUF9ERUZTRVQpID09IDApCisJCQkJcmV0dXJuICgxKTsKKwkJCWlmIChlcC0+ ZXhfZGVmbnVtc2VjZmxhdm9ycyAhPQorCQkJICAgIG9lcC0+ZXhfZGVmbnVtc2VjZmxhdm9ycyB8 fAorCQkJICAgIGVwLT5leF9kZWZleGZsYWdzICE9IG9lcC0+ZXhfZGVmZXhmbGFncyB8fAorCQkJ ICAgIGNvbXBhcmVfY3JlZCgmZXAtPmV4X2RlZmFub24sICZvZXAtPmV4X2RlZmFub24pICE9CisJ CQkgICAgMCB8fCBjb21wYXJlX3NlY2ZsYXZvcihlcC0+ZXhfZGVmc2VjZmxhdm9ycywKKwkJCSAg ICBvZXAtPmV4X2RlZnNlY2ZsYXZvcnMsIGVwLT5leF9kZWZudW1zZWNmbGF2b3JzKSAhPQorCQkJ ICAgIDApCisJCQkJcmV0dXJuICgxKTsKKwkJfQorCX0KKworCS8qIE5vdywgY2hlY2sgYWxsIHRo ZSBncm91cHMuICovCisJZm9yIChvZ3JwID0gb2VwLT5leF9ncnBoZWFkOyBvZ3JwICE9IE5VTEw7 IG9ncnAgPSBvZ3JwLT5ncl9uZXh0KQorCQlvZ3JwLT5ncl9mbGFnID0gMDsKKwlmb3IgKGdycCA9 IGVwLT5leF9ncnBoZWFkOyBncnAgIT0gTlVMTDsgZ3JwID0gZ3JwLT5ncl9uZXh0KSB7CisJCWZv ciAob2dycCA9IG9lcC0+ZXhfZ3JwaGVhZDsgb2dycCAhPSBOVUxMOyBvZ3JwID0KKwkJICAgIG9n cnAtPmdyX25leHQpCisJCQlpZiAoKG9ncnAtPmdyX2ZsYWcgJiBHUl9GTkQpID09IDAgJiYKKwkJ CSAgICBncnAtPmdyX251bXNlY2ZsYXZvcnMgPT0gb2dycC0+Z3JfbnVtc2VjZmxhdm9ycyAmJgor CQkJICAgIGdycC0+Z3JfZXhmbGFncyA9PSBvZ3JwLT5ncl9leGZsYWdzICYmCisJCQkgICAgY29t cGFyZV9jcmVkKCZncnAtPmdyX2Fub24sICZvZ3JwLT5ncl9hbm9uKSA9PSAwICYmCisJCQkgICAg Y29tcGFyZV9zZWNmbGF2b3IoZ3JwLT5ncl9zZWNmbGF2b3JzLAorCQkJICAgIG9ncnAtPmdyX3Nl Y2ZsYXZvcnMsIGdycC0+Z3JfbnVtc2VjZmxhdm9ycykgPT0gMCkKKwkJCQlicmVhazsKKwkJaWYg KG9ncnAgIT0gTlVMTCkKKwkJCW9ncnAtPmdyX2ZsYWcgfD0gR1JfRk5EOworCQllbHNlCisJCQly ZXR1cm4gKDEpOworCX0KKwlmb3IgKG9ncnAgPSBvZXAtPmV4X2dycGhlYWQ7IG9ncnAgIT0gTlVM TDsgb2dycCA9IG9ncnAtPmdyX25leHQpCisJCWlmICgob2dycC0+Z3JfZmxhZyAmIEdSX0ZORCkg PT0gMCkKKwkJCXJldHVybiAoMSk7CisJcmV0dXJuICgwKTsKK30KKworLyoKKyAqIENvbXBhcmUg dG8gc3RydWN0IHh1Y3JlZCdzLiAgUmV0dXJuIDAgaWYgdGhlIHNhbWUgYW5kIDEgb3RoZXJ3aXNl LgorICogVGhpcyBhbGdvcml0aG0gaXMgTyhOKioyKSBidXQgZm9ydHVuYXRlbHkgTiBpcyBhbHdh eXMgc21hbGwuCisgKi8KK3N0YXRpYyBpbnQKK2NvbXBhcmVfY3JlZChzdHJ1Y3QgeHVjcmVkICpj cjAsIHN0cnVjdCB4dWNyZWQgKmNyMSkKK3sKKwlpbnQgaSwgajsKKworCWlmIChjcjAtPmNyX3Vp ZCAhPSBjcjEtPmNyX3VpZCB8fCBjcjAtPmNyX25ncm91cHMgIT0gY3IxLT5jcl9uZ3JvdXBzKQor CQlyZXR1cm4gKDEpOworCWZvciAoaSA9IDA7IGkgPCBjcjAtPmNyX25ncm91cHM7IGkrKykgewor CQlmb3IgKGogPSAwOyBqIDwgY3IwLT5jcl9uZ3JvdXBzOyBqKyspCisJCQlpZiAoY3IwLT5jcl9n cm91cHNbaV0gPT0gY3IxLT5jcl9ncm91cHNbal0pCisJCQkJYnJlYWs7CisJCWlmIChqID09IGNy MC0+Y3Jfbmdyb3VwcykKKwkJCXJldHVybiAoMSk7CisJfQorCXJldHVybiAoMCk7Cit9CisKKy8q CisgKiBDb21wYXJlIHR3byBsaXN0cyBvZiBzZWN1cml0eSBmbGF2b3JzLiAgUmV0dXJuIDAgaWYg dGhlIHNhbWUgYW5kIDEgb3RoZXJ3aXNlLgorICogVGhpcyBhbGdvcml0aG0gaXMgTyhOKioyKSBi dXQgZm9ydHVuYXRlbHkgTiBpcyBhbHdheXMgc21hbGwuCisgKi8KK3N0YXRpYyBpbnQKK2NvbXBh cmVfc2VjZmxhdm9yKGludCAqc2VjMSwgaW50ICpzZWMyLCBpbnQgbnNlYykKK3sKKwlpbnQgaSwg ajsKKworCWZvciAoaSA9IDA7IGkgPCBuc2VjOyBpKyspIHsKKwkJZm9yIChqID0gMDsgaiA8IG5z ZWM7IGorKykKKwkJCWlmIChzZWMxW2ldID09IHNlYzJbal0pCisJCQkJYnJlYWs7CisJCWlmIChq ID09IG5zZWMpCisJCQlyZXR1cm4gKDEpOworCX0KKwlyZXR1cm4gKDApOworfQorCisvKgorICog RGVsZXRlIGFuIGV4cG9ydHMgZW50cnkuCisgKi8KK3N0YXRpYyB2b2lkCitkZWxldGVfZXhwb3J0 KHN0cnVjdCBpb3ZlYyAqaW92LCBpbnQgaW92bGVuLCBzdHJ1Y3Qgc3RhdGZzICpmc3AsIGNoYXIg KmVycm1zZykKK3sKKwlzdHJ1Y3QgeHZmc2NvbmYgdmZjOworCisJaWYgKGdldHZmc2J5bmFtZShm c3AtPmZfZnN0eXBlbmFtZSwgJnZmYykgIT0gMCkgeworCQlzeXNsb2coTE9HX0VSUiwgImdldHZm c2J5bmFtZSgpIGZhaWxlZCBmb3IgJXMiLAorCQkgICAgZnNwLT5mX2ZzdHlwZW5hbWUpOworCQly ZXR1cm47CisJfQorCQorCS8qCisJICogV2UgZG8gbm90IG5lZWQgdG8gZGVsZXRlICJleHBvcnQi IGZsYWcgZnJvbQorCSAqIGZpbGVzeXN0ZW1zIHRoYXQgZG8gbm90IGhhdmUgaXQgc2V0LgorCSAq LworCWlmICghKGZzcC0+Zl9mbGFncyAmIE1OVF9FWFBPUlRFRCkpCisJCXJldHVybjsKKwkvKgor CSAqIERvIG5vdCBkZWxldGUgZXhwb3J0IGZvciBuZXR3b3JrIGZpbGVzeXN0ZW0gYnkKKwkgKiBw YXNzaW5nICJleHBvcnQiIGFyZyB0byBubW91bnQoKS4KKwkgKiBJdCBvbmx5IG1ha2VzIHNlbnNl IHRvIGRvIHRoaXMgZm9yIGxvY2FsIGZpbGVzeXN0ZW1zLgorCSAqLworCWlmICh2ZmMudmZjX2Zs YWdzICYgVkZDRl9ORVRXT1JLKQorCQlyZXR1cm47CisJCisJaW92WzFdLmlvdl9iYXNlID0gZnNw LT5mX2ZzdHlwZW5hbWU7CisJaW92WzFdLmlvdl9sZW4gPSBzdHJsZW4oZnNwLT5mX2ZzdHlwZW5h bWUpICsgMTsKKwlpb3ZbM10uaW92X2Jhc2UgPSBmc3AtPmZfbW50b25uYW1lOworCWlvdlszXS5p b3ZfbGVuID0gc3RybGVuKGZzcC0+Zl9tbnRvbm5hbWUpICsgMTsKKwlpb3ZbNV0uaW92X2Jhc2Ug PSBmc3AtPmZfbW50ZnJvbW5hbWU7CisJaW92WzVdLmlvdl9sZW4gPSBzdHJsZW4oZnNwLT5mX21u dGZyb21uYW1lKSArIDE7CisJZXJybXNnWzBdID0gJ1wwJzsKKwkKKwkvKgorCSAqIEVYREVWIGlz IHJldHVybmVkIHdoZW4gcGF0aCBleGlzdHMgYnV0IGlzIG5vdCBhCisJICogbW91bnQgcG9pbnQu ICBNYXkgaGFwcGVucyBpZiByYWNlZCB3aXRoIHVubW91bnQuCisJICovCisJaWYgKG5tb3VudChp b3YsIGlvdmxlbiwgZnNwLT5mX2ZsYWdzKSA8IDAgJiYgZXJybm8gIT0gRU5PRU5UICYmCisJICAg IGVycm5vICE9IEVOT1RTVVAgJiYgZXJybm8gIT0gRVhERVYpIHsKKwkJc3lzbG9nKExPR19FUlIs CisJCSAgICAiY2FuJ3QgZGVsZXRlIGV4cG9ydHMgZm9yICVzOiAlbSAlcyIsCisJCSAgICBmc3At PmZfbW50b25uYW1lLCBlcnJtc2cpOworCX0KK30KKworLyoKKyAqIEluc2VydCBhbiBleHBvcnQg ZW50cnkgaW4gdGhlIGFwcHJvcHJpYXRlIGxpc3QuCisgKi8KK3N0YXRpYyB2b2lkCitpbnNlcnRf ZXhwb3J0cyhzdHJ1Y3QgZXhwb3J0bGlzdCAqZXAsIHN0cnVjdCBleHBvcnRsaXN0aGVhZCAqZXho cCkKK3sKKwl1aW50MzJfdCBpOworCisJaSA9IEVYUEhBU0goJmVwLT5leF9mcyk7CisJU0xJU1Rf SU5TRVJUX0hFQUQoJmV4aHBbaV0sIGVwLCBlbnRyaWVzKTsKK30KKworLyoKKyAqIEZyZWUgdXAg dGhlIGV4cG9ydHMgbGlzdHMgcGFzc2VkIGluIGFzIGFyZ3VtZW50cy4KKyAqLworc3RhdGljIHZv aWQKK2ZyZWVfZXhwb3J0cyhzdHJ1Y3QgZXhwb3J0bGlzdGhlYWQgKmV4aHApCit7CisJc3RydWN0 IGV4cG9ydGxpc3QgKmVwLCAqZXAyOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IEVYUEhB U0hTSVpFOyBpKyspIHsKKwkJU0xJU1RfRk9SRUFDSF9TQUZFKGVwLCAmZXhocFtpXSwgZW50cmll cywgZXAyKSB7CisJCQlTTElTVF9SRU1PVkUoJmV4aHBbaV0sIGVwLCBleHBvcnRsaXN0LCBlbnRy aWVzKTsKKwkJCWZyZWVfZXhwKGVwKTsKKwkJfQorCQlTTElTVF9JTklUKCZleGhwW2ldKTsKKwl9 CiB9CiAKIC8qCkBAIC0xOTI0LDExICsyMjU0LDEzIEBAIGdldGV4cF9lcnIoc3RydWN0IGV4cG9y dGxpc3QgKmVwLCBzdHJ1Y3QKICAqIFNlYXJjaCB0aGUgZXhwb3J0IGxpc3QgZm9yIGEgbWF0Y2hp bmcgZnMuCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgZXhwb3J0bGlzdCAqCi1leF9zZWFyY2goZnNpZF90 ICpmc2lkKQorZXhfc2VhcmNoKGZzaWRfdCAqZnNpZCwgc3RydWN0IGV4cG9ydGxpc3RoZWFkICpl eGhwKQogewogCXN0cnVjdCBleHBvcnRsaXN0ICplcDsKKwl1aW50MzJfdCBpOwogCi0JU0xJU1Rf Rk9SRUFDSChlcCwgJmV4cGhlYWQsIGVudHJpZXMpIHsKKwlpID0gRVhQSEFTSChmc2lkKTsKKwlT TElTVF9GT1JFQUNIKGVwLCAmZXhocFtpXSwgZW50cmllcykgewogCQlpZiAoZXAtPmV4X2ZzLnZh bFswXSA9PSBmc2lkLT52YWxbMF0gJiYKIAkJICAgIGVwLT5leF9mcy52YWxbMV0gPT0gZnNpZC0+ dmFsWzFdKQogCQkJcmV0dXJuIChlcCk7CkBAIC0xOTY1LDcgKzIyOTcsNyBAQCBhZGRfZXhwZGly KHN0cnVjdCBkaXJsaXN0ICoqZHBwLCBjaGFyICpjCiAgKi8KIHN0YXRpYyB2b2lkCiBoYW5nX2Rp cnAoc3RydWN0IGRpcmxpc3QgKmRwLCBzdHJ1Y3QgZ3JvdXBsaXN0ICpncnAsIHN0cnVjdCBleHBv cnRsaXN0ICplcCwKLQlpbnQgZmxhZ3MpCisJaW50IGZsYWdzLCBzdHJ1Y3QgeHVjcmVkICphbm9u Y3JwLCBpbnQgZXhmbGFncykKIHsKIAlzdHJ1Y3QgaG9zdGxpc3QgKmhwOwogCXN0cnVjdCBkaXJs aXN0ICpkcDI7CkBAIC0xOTgyLDYgKzIzMTQsOCBAQCBoYW5nX2RpcnAoc3RydWN0IGRpcmxpc3Qg KmRwLCBzdHJ1Y3QgZ3JvCiAJCQlpZiAoZXAtPmV4X251bXNlY2ZsYXZvcnMgPiAwKQogCQkJCW1l bWNweShlcC0+ZXhfZGVmc2VjZmxhdm9ycywgZXAtPmV4X3NlY2ZsYXZvcnMsCiAJCQkJICAgIHNp emVvZihlcC0+ZXhfc2VjZmxhdm9ycykpOworCQkJZXAtPmV4X2RlZmFub24gPSAqYW5vbmNycDsK KwkJCWVwLT5leF9kZWZleGZsYWdzID0gZXhmbGFnczsKIAkJfSBlbHNlIHdoaWxlIChncnApIHsK IAkJCWhwID0gZ2V0X2h0KCk7CiAJCQlocC0+aHRfZ3JwID0gZ3JwOwpAQCAtMjQwMyw2ICsyNzM3 LDcgQEAgZ2V0X2hvc3QoY2hhciAqY3AsIHN0cnVjdCBncm91cGxpc3QgKmdycAogc3RhdGljIHZv aWQKIGZyZWVfZXhwKHN0cnVjdCBleHBvcnRsaXN0ICplcCkKIHsKKwlzdHJ1Y3QgZ3JvdXBsaXN0 ICpncnAsICp0Z3JwOwogCiAJaWYgKGVwLT5leF9kZWZkaXIpIHsKIAkJZnJlZV9ob3N0KGVwLT5l eF9kZWZkaXItPmRwX2hvc3RzKTsKQEAgLTI0MTMsMTAgKzI3NDgsMzcgQEAgZnJlZV9leHAoc3Ry dWN0IGV4cG9ydGxpc3QgKmVwKQogCWlmIChlcC0+ZXhfaW5kZXhmaWxlKQogCQlmcmVlKGVwLT5l eF9pbmRleGZpbGUpOwogCWZyZWVfZGlyKGVwLT5leF9kaXJsKTsKKwl0Z3JwID0gZXAtPmV4X2dy cGhlYWQ7CisJd2hpbGUgKHRncnAgIT0gTlVMTCkgeworCQlncnAgPSB0Z3JwOworCQl0Z3JwID0g dGdycC0+Z3JfbmV4dDsKKwkJZnJlZV9ncnAoZ3JwKTsKKwl9CiAJZnJlZSgoY2FkZHJfdCllcCk7 CiB9CiAKIC8qCisgKiBGcmVlIHVwIHRoZSB2NHJvb3QgZXhwb3J0cy4KKyAqLworc3RhdGljIHZv aWQKK2ZyZWVfdjRyb290ZXhwKHZvaWQpCit7CisJc3RydWN0IGdyb3VwbGlzdCAqZ3JwLCAqdGdy cDsKKworCWlmICh2NHJvb3RfZXAgIT0gTlVMTCkgeworCQlmcmVlX2V4cCh2NHJvb3RfZXApOwor CQl2NHJvb3RfZXAgPSBOVUxMOworCX0KKwl0Z3JwID0gdjRyb290X2dycDsKKwl2NHJvb3RfZ3Jw ID0gTlVMTDsKKwl3aGlsZSAodGdycCAhPSBOVUxMKSB7CisJCWdycCA9IHRncnA7CisJCXRncnAg PSB0Z3JwLT5ncl9uZXh0OworCQlmcmVlX2dycChncnApOworCX0KK30KKworLyoKICAqIEZyZWUg aG9zdHMuCiAgKi8KIHN0YXRpYyB2b2lkCkBAIC0yNDU2LDYgKzI4MTgsNDQgQEAgb3V0X29mX21l bSh2b2lkKQogfQogCiAvKgorICogQ2FsbCBkb19tb3VudCgpIGZyb20gdGhlIHN0cnVjdCBleHBv cnRsaXN0LCBmb3IgZWFjaCBjYXNlIG5lZWRlZC4KKyAqLworc3RhdGljIGludAorZG9fZXhwb3J0 X21vdW50KHN0cnVjdCBleHBvcnRsaXN0ICplcCwgc3RydWN0IHN0YXRmcyAqZnNwKQoreworCXN0 cnVjdCBkaXJsaXN0ICpkcDsKKwlzdHJ1Y3QgZ3JvdXBsaXN0ICpncnAsIGRlZmdycDsKKwlpbnQg cmV0OworCXNpemVfdCBkaXJsZW47CisKK3N5c2xvZyhMT0dfRVJSLCAiZG9fbW91bnRfZXhwb3J0 PSVzIiwgZXAtPmV4X2ZzZGlyKTsKKwlkaXJsZW4gPSBzdHJsZW4oZXAtPmV4X2ZzZGlyKTsKKwlk cCA9IGVwLT5leF9kZWZkaXI7CisJaWYgKGRwICE9IE5VTEwgJiYgKGRwLT5kcF9mbGFnICYgRFBf REVGU0VUKSAhPSAwKSB7CisJCWRlZmdycC5ncl90eXBlID0gR1RfREVGQVVMVDsKKwkJZGVmZ3Jw LmdyX25leHQgPSBOVUxMOworCQkvKiBXZSBoYXZlIGFuIGVudHJ5IGZvciBhbGwgb3RoZXIgaG9z dHMvbmV0cy4gKi8KK3N5c2xvZyhMT0dfRVJSLCAiZXhfZGVmZXhmbGFncz0weCV4IiwgZXAtPmV4 X2RlZmV4ZmxhZ3MpOworCQlyZXQgPSBkb19tb3VudChlcCwgJmRlZmdycCwgZXAtPmV4X2RlZmV4 ZmxhZ3MsICZlcC0+ZXhfZGVmYW5vbiwKKwkJICAgIGVwLT5leF9mc2RpciwgZGlybGVuLCBmc3Ap OworCQlpZiAocmV0ICE9IDApCisJCQlyZXR1cm4gKHJldCk7CisJfQorCisJLyogRG8gYSBtb3Vu dCBmb3IgZWFjaCBncm91cC4gKi8KKwlncnAgPSBlcC0+ZXhfZ3JwaGVhZDsKKwl3aGlsZSAoZ3Jw ICE9IE5VTEwpIHsKK3N5c2xvZyhMT0dfRVJSLCAiZG8gbW91bnQgZ3JfdHlwZT0weCV4IGdyX2V4 ZmxhZ3M9MHgleCIsIGdycC0+Z3JfdHlwZSwgZ3JwLT5ncl9leGZsYWdzKTsKKwkJcmV0ID0gZG9f bW91bnQoZXAsIGdycCwgZ3JwLT5ncl9leGZsYWdzLCAmZ3JwLT5ncl9hbm9uLAorCQkgICAgZXAt PmV4X2ZzZGlyLCBkaXJsZW4sIGZzcCk7CisJCWlmIChyZXQgIT0gMCkKKwkJCXJldHVybiAocmV0 KTsKKwkJZ3JwID0gZ3JwLT5ncl9uZXh0OworCX0KKwlyZXR1cm4gKDApOworfQorCisvKgogICog RG8gdGhlIG5tb3VudCgpIHN5c2NhbGwgd2l0aCB0aGUgdXBkYXRlIGZsYWcgdG8gcHVzaCB0aGUg ZXhwb3J0IGluZm8gaW50bwogICogdGhlIGtlcm5lbC4KICAqLwpAQCAtMjQ4Nyw2ICsyODg3LDcg QEAgZG9fbW91bnQoc3RydWN0IGV4cG9ydGxpc3QgKmVwLCBzdHJ1Y3QgZwogCWJ6ZXJvKGVycm1z Zywgc2l6ZW9mKGVycm1zZykpOwogCWVhcC0+ZXhfZmxhZ3MgPSBleGZsYWdzOwogCWVhcC0+ZXhf YW5vbiA9ICphbm9uY3JwOworc3lzbG9nKExPR19FUlIsICJkb19leGZsYWdzPTB4JXgiLCBleGZs YWdzKTsKIAllYXAtPmV4X2luZGV4ZmlsZSA9IGVwLT5leF9pbmRleGZpbGU7CiAJaWYgKGdycC0+ Z3JfdHlwZSA9PSBHVF9IT1NUKQogCQlhaSA9IGdycC0+Z3JfcHRyLmd0X2FkZHJpbmZvOwo= --_002_YQBPR0101MB2260008E1767646E9DFBB790DD310YQBPR0101MB2260_-- From owner-freebsd-fs@freebsd.org Wed May 8 03:55:42 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5A013159CB60 for ; Wed, 8 May 2019 03:55:42 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id E81C389F62 for ; Wed, 8 May 2019 03:55:41 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id A50D1159CB5E; Wed, 8 May 2019 03:55:41 +0000 (UTC) Delivered-To: fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 937CB159CB5D for ; Wed, 8 May 2019 03:55:41 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.ysv.freebsd.org (mxrelay.ysv.freebsd.org [IPv6:2001:1900:2254:206a::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.ysv.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2B59F89F5F for ; Wed, 8 May 2019 03:55:41 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.ysv.freebsd.org (Postfix) with ESMTPS id 681892609 for ; Wed, 8 May 2019 03:55:40 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id x483teCY002721 for ; Wed, 8 May 2019 03:55:40 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id x483teTR002718 for fs@FreeBSD.org; Wed, 8 May 2019 03:55:40 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: fs@FreeBSD.org Subject: [Bug 235665] panic: handle_written_inodeblock: live inodedep Date: Wed, 08 May 2019 03:55:39 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: crash, needs-qa X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: koobs@FreeBSD.org X-Bugzilla-Status: Open X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: fs@FreeBSD.org X-Bugzilla-Flags: mfc-stable11? mfc-stable12? X-Bugzilla-Changed-Fields: flagtypes.name keywords assigned_to bug_status Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 May 2019 03:55:42 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D235665 Kubilay Kocak changed: What |Removed |Added ---------------------------------------------------------------------------- Flags| |mfc-stable11?, | |mfc-stable12? Keywords|panic, stress2 |crash, needs-qa Assignee|bugs@FreeBSD.org |fs@FreeBSD.org Status|New |Open --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-fs@freebsd.org Wed May 8 03:58:42 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AC75B159CCCF for ; Wed, 8 May 2019 03:58:42 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id 476F68A0BD for ; Wed, 8 May 2019 03:58:42 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id 044D4159CCCE; Wed, 8 May 2019 03:58:42 +0000 (UTC) Delivered-To: fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E6B8B159CCCD for ; Wed, 8 May 2019 03:58:41 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.ysv.freebsd.org (mxrelay.ysv.freebsd.org [IPv6:2001:1900:2254:206a::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.ysv.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 64A3A8A0BB for ; Wed, 8 May 2019 03:58:41 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.ysv.freebsd.org (Postfix) with ESMTPS id 9BFD8260D for ; Wed, 8 May 2019 03:58:40 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id x483we3a006159 for ; Wed, 8 May 2019 03:58:40 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id x483weCv006158 for fs@FreeBSD.org; Wed, 8 May 2019 03:58:40 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: fs@FreeBSD.org Subject: [Bug 235665] panic: handle_written_inodeblock: live inodedep Date: Wed, 08 May 2019 03:58:40 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: crash, needs-qa X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: koobs@FreeBSD.org X-Bugzilla-Status: Open X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: fs@FreeBSD.org X-Bugzilla-Flags: mfc-stable11? mfc-stable12? X-Bugzilla-Changed-Fields: attachments.created Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 May 2019 03:58:42 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D235665 --- Comment #1 from Kubilay Kocak --- Created attachment 204257 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D204257&action= =3Dedit panic bt screenshot Just hit this after an unclear shutdown. Boot into single user and two fsck= -y runs marked the FS clean. 13.0-CURRENT r340668 (amd64, GENERIC-NODEBUG) --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-fs@freebsd.org Wed May 8 03:59:17 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B0985159CD0B for ; Wed, 8 May 2019 03:59:17 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id 4BF988A118 for ; Wed, 8 May 2019 03:59:17 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id 0BF36159CD0A; Wed, 8 May 2019 03:59:17 +0000 (UTC) Delivered-To: fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EDCBB159CD08 for ; Wed, 8 May 2019 03:59:16 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.ysv.freebsd.org (mxrelay.ysv.freebsd.org [IPv6:2001:1900:2254:206a::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.ysv.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8B40A8A115 for ; Wed, 8 May 2019 03:59:16 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.ysv.freebsd.org (Postfix) with ESMTPS id D9CD4260E for ; Wed, 8 May 2019 03:59:15 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id x483xFDF006740 for ; Wed, 8 May 2019 03:59:15 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id x483xFhX006738 for fs@FreeBSD.org; Wed, 8 May 2019 03:59:15 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: fs@FreeBSD.org Subject: [Bug 235665] panic: handle_written_inodeblock: live inodedep Date: Wed, 08 May 2019 03:59:16 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: crash, needs-qa X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: koobs@FreeBSD.org X-Bugzilla-Status: Open X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: fs@FreeBSD.org X-Bugzilla-Flags: mfc-stable11? mfc-stable12? X-Bugzilla-Changed-Fields: bug_severity Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 May 2019 03:59:17 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D235665 Kubilay Kocak changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|Affects Only Me |Affects Some People --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-fs@freebsd.org Wed May 8 14:39:29 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0DA491588D66 for ; Wed, 8 May 2019 14:39:29 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-QB1-obe.outbound.protection.outlook.com (mail-eopbgr660071.outbound.protection.outlook.com [40.107.66.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7310C758C5 for ; Wed, 8 May 2019 14:39:27 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM (52.132.70.13) by YQBPR0101MB1025.CANPRD01.PROD.OUTLOOK.COM (52.132.73.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.15; Wed, 8 May 2019 14:39:25 +0000 Received: from YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM ([fe80::e92e:7851:66e9:3967]) by YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM ([fe80::e92e:7851:66e9:3967%7]) with mapi id 15.20.1856.012; Wed, 8 May 2019 14:39:25 +0000 From: Rick Macklem To: Peter Eriksson , "freebsd-fs@freebsd.org" Subject: test hash functions for fsid Thread-Topic: test hash functions for fsid Thread-Index: AQHVBauTkubp5doP8E+dPPSC2TDxrQ== Date: Wed, 8 May 2019 14:39:25 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 790227ad-95c9-4146-fade-08d6d3c2f7fd x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(49563074)(7193020); SRVR:YQBPR0101MB1025; x-ms-traffictypediagnostic: YQBPR0101MB1025: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6108; x-forefront-prvs: 0031A0FFAF x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(199004)(189003)(51874003)(46003)(498600001)(296002)(86362001)(9686003)(8676002)(33656002)(256004)(5024004)(8936002)(5660300002)(53936002)(81156014)(81166006)(68736007)(186003)(71200400001)(2906002)(7696005)(55016002)(14454004)(71190400001)(99286004)(6436002)(74482002)(25786009)(102836004)(6506007)(110136005)(52536014)(64756008)(66556008)(99936001)(66476007)(73956011)(305945005)(76116006)(2501003)(66616009)(66946007)(558084003)(74316002)(476003)(66446008)(486006); DIR:OUT; SFP:1101; SCL:1; SRVR:YQBPR0101MB1025; H:YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: uoguelph.ca does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: SfrjxOgjGcONXzSzfrNeI+Ipmp9vY676e1Wji6N6V2OHhq0hCUhTBIswsLV38fXsoSXL5uFxsSryBw6tBkkjABwu7vnbxYExmqYjCYS1n5JNq534xK5GkEXChlcNBl07CSJNY3xs/fUXp9druymTupmoxlduHtqI0xtapP+txAD9UgGyu1bfB0Moko6QHoDn4/u/eTVNB6zfN6YLi5aM77qSp/3bMjWmBiHPucY57nGnk8WatepK9sXI3ymMiAVbo7JgrVym+FHZXaIW7oxgK+bRmwWAGeFxnniSZTCjkYMdfu/ENy/+YL5G995qcyVpht6gXsfOigaE46FDK/rqsiWE/Qt0iaabhnfLfiYcdVTrqRaflzqoVuw5m/ICsoqxSrF0E7xxLDPgbm70q4LxwPCBSMsi49SHM8QvmsVHZgg= Content-Type: multipart/mixed; boundary="_002_YQBPR0101MB2260D82BAE348FB82902508CDD320YQBPR0101MB2260_" MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-Network-Message-Id: 790227ad-95c9-4146-fade-08d6d3c2f7fd X-MS-Exchange-CrossTenant-originalarrivaltime: 08 May 2019 14:39:25.5838 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQBPR0101MB1025 X-Rspamd-Queue-Id: 7310C758C5 X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of rmacklem@uoguelph.ca designates 40.107.66.71 as permitted sender) smtp.mailfrom=rmacklem@uoguelph.ca X-Spamd-Result: default: False [-3.10 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; HAS_ATTACHMENT(0.00)[]; MIME_GOOD(-0.10)[multipart/mixed,text/plain]; DMARC_NA(0.00)[uoguelph.ca]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com]; CTYPE_MIXED_BOGUS(1.00)[]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_NONE(0.00)[71.66.107.40.list.dnswl.org : 127.0.3.0]; MIME_BASE64_TEXT(0.10)[]; IP_SCORE(-1.00)[ipnet: 40.64.0.0/10(-2.69), asn: 8075(-2.22), country: US(-0.06)]; NEURAL_HAM_SHORT(-0.90)[-0.899,0]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+]; ASN(0.00)[asn:8075, ipnet:40.64.0.0/10, country:US]; RCVD_TLS_LAST(0.00)[] X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 May 2019 14:39:29 -0000 --_002_YQBPR0101MB2260D82BAE348FB82902508CDD320YQBPR0101MB2260_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi, If you have a FreeBSD system with lots of local file systems (1000s), maybe= you could run the attached program on it and email me the stats. I'm just trying to see how well these hash functions work on fsids. Thanks in advance, rick --_002_YQBPR0101MB2260D82BAE348FB82902508CDD320YQBPR0101MB2260_ Content-Type: text/plain; name="testhash.c" Content-Description: testhash.c Content-Disposition: attachment; filename="testhash.c"; size=1355; creation-date="Wed, 08 May 2019 14:39:21 GMT"; modification-date="Wed, 08 May 2019 14:39:21 GMT" Content-Transfer-Encoding: base64 I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KI2luY2x1ZGUgPHN5cy9m bnZfaGFzaC5oPgojaW5jbHVkZSA8c3lzL2hhc2guaD4KI2luY2x1ZGUgPHN5cy9tb3VudC5oPgoK aW50Cm1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKewoJaW50IGgxWzI1Nl0sIGgyWzI1Nl0s IGgzWzI1Nl0sIGg0WzI1Nl0sIGksIG1heCwgbWluLCBudW07CglzdHJ1Y3Qgc3RhdGZzICptbnRi dWZwOwoKCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgewoJCWgxW2ldID0gMDsKCQloMltpXSA9 IDA7CgkJaDNbaV0gPSAwOwoJCWg0W2ldID0gMDsKCX0KCW51bSA9IGdldG1udGluZm8oJm1udGJ1 ZnAsIE1OVF9OT1dBSVQpOwoJZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKSB7CgkJaDFbZm52XzMy X2J1ZigmbW50YnVmcFtpXS5mX2ZzaWQsIHNpemVvZihmc2lkX3QpLCAwKSAlIDI1Nl0rKzsKCQlo MltmbnZfMzJfYnVmKCZtbnRidWZwW2ldLmZfZnNpZCwgc2l6ZW9mKGZzaWRfdCksIEZOVjFfMzJf SU5JVCkgJSAyNTZdKys7CgkJaDNbaGFzaDMyX2J1ZigmbW50YnVmcFtpXS5mX2ZzaWQsIHNpemVv Zihmc2lkX3QpLCAwKSAlIDI1Nl0rKzsKCQloNFtoYXNoMzJfYnVmKCZtbnRidWZwW2ldLmZfZnNp ZCwgc2l6ZW9mKGZzaWRfdCksIEhBU0hJTklUKSAlIDI1Nl0rKzsKCX0KCW1pbiA9IDEwMDAwMDAw OwoJbWF4ID0gMDsKCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgewoJCWlmIChoMVtpXSA+IG1h eCkKCQkJbWF4ID0gaDFbaV07CgkJaWYgKGgxW2ldIDwgbWluKQoJCQltaW4gPSBoMVtpXTsKCX0K CXByaW50ZigiSDE6IG1heD0lZCBtaW49JWRcbiIsIG1heCwgbWluKTsKCW1pbiA9IDEwMDAwMDAw OwoJbWF4ID0gMDsKCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgewoJCWlmIChoMltpXSA+IG1h eCkKCQkJbWF4ID0gaDJbaV07CgkJaWYgKGgyW2ldIDwgbWluKQoJCQltaW4gPSBoMltpXTsKCX0K CXByaW50ZigiSDI6IG1heD0lZCBtaW49JWRcbiIsIG1heCwgbWluKTsKCW1pbiA9IDEwMDAwMDAw OwoJbWF4ID0gMDsKCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgewoJCWlmIChoM1tpXSA+IG1h eCkKCQkJbWF4ID0gaDNbaV07CgkJaWYgKGgzW2ldIDwgbWluKQoJCQltaW4gPSBoM1tpXTsKCX0K CXByaW50ZigiSDM6IG1heD0lZCBtaW49JWRcbiIsIG1heCwgbWluKTsKCW1pbiA9IDEwMDAwMDAw OwoJbWF4ID0gMDsKCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgewoJCWlmIChoNFtpXSA+IG1h eCkKCQkJbWF4ID0gaDRbaV07CgkJaWYgKGg0W2ldIDwgbWluKQoJCQltaW4gPSBoNFtpXTsKCX0K CXByaW50ZigiSDQ6IG1heD0lZCBtaW49JWRcbiIsIG1heCwgbWluKTsKfQo= --_002_YQBPR0101MB2260D82BAE348FB82902508CDD320YQBPR0101MB2260_-- From owner-freebsd-fs@freebsd.org Wed May 8 15:50:57 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DDF4A158B101 for ; Wed, 8 May 2019 15:50:56 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 95EB881771 for ; Wed, 8 May 2019 15:50:55 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io1-f51.google.com with SMTP id s20so7806795ioj.7 for ; Wed, 08 May 2019 08:50:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=qcppmgf09g5IjWS1+15J3iHE6Oj4U/SuTMg9T9vuGlI=; b=FttBb6GoyyKy08kv5zAmoooa3psdsINLjsPOfWW0IPp7rMfyRGK34cdgaGW96YtS8Q MrkMF9tOTJ9J/SaSMhPqLUa/VXG8wBUnn4VwtgzIYpy15D3f4skor3Oq+slGlcFG9j1k wQO4PUqYPx/K6T3qYY2kcUQrLb7lzGilA+F9EMfAOe3Kj5rd+/P0yTxwHZgMPnkQj0d3 yYU9NlMn41MJuE8vWC1ko0H24gIJSGqsYjWx+CHZgJNggeIwUoGCCpEl9noBkf4awF2v mrmX9+89LXOnDhaSBVOocvzT8/0el0LroJXhJhpsgXxfdSFbxmN2vv0BJ2vUYbUkohss vRhw== X-Gm-Message-State: APjAAAWD/pEw2/33aaHbS4p1LdK2x3awO6qaq9COyNs0YghV/DM0Ap7r J1lVqiQy5osAStOru0rMUtcZf3a2 X-Google-Smtp-Source: APXvYqzWbLt8iPtoIMvPKimIG/HrwgC0aKd6ip4m58LPFZ6/37l4thtwnp3cNffWpJNj3ryHPevGRA== X-Received: by 2002:a5e:9313:: with SMTP id k19mr21798603iom.239.1557330649045; Wed, 08 May 2019 08:50:49 -0700 (PDT) Received: from mail-it1-f175.google.com (mail-it1-f175.google.com. [209.85.166.175]) by smtp.gmail.com with ESMTPSA id m20sm3646709ioh.13.2019.05.08.08.50.48 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 08 May 2019 08:50:48 -0700 (PDT) Received: by mail-it1-f175.google.com with SMTP id o190so4725891itc.1 for ; Wed, 08 May 2019 08:50:48 -0700 (PDT) X-Received: by 2002:a24:65cf:: with SMTP id u198mr4058440itb.32.1557330648433; Wed, 08 May 2019 08:50:48 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Reply-To: cem@freebsd.org From: Conrad Meyer Date: Wed, 8 May 2019 08:50:37 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: test hash functions for fsid To: Rick Macklem Cc: "freebsd-fs@freebsd.org" Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 95EB881771 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of csecem@gmail.com designates 209.85.166.51 as permitted sender) smtp.mailfrom=csecem@gmail.com X-Spamd-Result: default: False [-5.97 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; HAS_REPLYTO(0.00)[cem@freebsd.org]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; REPLYTO_ADDR_EQ_FROM(0.00)[]; RCVD_COUNT_THREE(0.00)[4]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_HAM_SHORT(-0.99)[-0.987,0]; FORGED_SENDER(0.30)[cem@freebsd.org,csecem@gmail.com]; IP_SCORE(-2.97)[ip: (-8.83), ipnet: 209.85.128.0/17(-3.73), asn: 15169(-2.25), country: US(-0.06)]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[cem@freebsd.org,csecem@gmail.com]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; TAGGED_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-fs@freebsd.org]; DMARC_NA(0.00)[freebsd.org]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[51.166.85.209.list.dnswl.org : 127.0.5.0]; RCVD_TLS_LAST(0.00)[] X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 May 2019 15:50:57 -0000 Hi Rick, On Wed, May 8, 2019 at 7:39 AM Rick Macklem wrote: > If you have a FreeBSD system with lots of local file systems (1000s), maybe you could > run the attached program on it and email me the stats. > I'm just trying to see how well these hash functions work on fsids. Below I'll get to some comments on hash functions and hash tables, but first: have you considered a non-hash data structure, such as PCTRIE? PCTRIE_DEFINE() creates a datastructure with similar properties to a hash table for this use, but does not require a hash function step at all because all fsids are already unique, fixed-size, 64-bit values. It may be especially space-efficient for non-ZFS FSIDs, when the 64-bit key is composed with '(fsid.val[1] << 32 | fsid.val[0])'. (Elaborated on more below.(A)) Usually it makes sense to size hash tables for the size of the data; for direct insert tables you want to keep the load factor below 0.8 or something like that. So the hardcoded 256 doesn't make a ton of sense, IMO. As far as hash functions, both (hash32_buf == djb2, FNV32) are really weak, but importantly for hash tables, fast. https://github.com/Cyan4973/smhasher#summary provides some broader context, but keep in mind most of those algorithms are targeting much longer keys than 8 bytes. I would guess that h1/h3 will be noticably worse than h2/h4 without performing any better, but I don't have data to back that up. (If you were to test calculate_crc32c() or XXH32/XXH64, included in sys/contrib/zstd, you might observe fewer collisions and better distribution. But that isn't necessarily the most important factor for hash table performance in this use.) (A) FSIDs themselves have poor initial distribution and *very* few unique bits (i.e., for filesystems that use vfs_getnewfsid, the int32 fsid val[1] will be identical across all filesystems of the same type, such as NFS mounts). The remaining val[0] is unique due to an incrementing global counter. You could pretty easily extract the vfs_getnewfsid() code out to userspace to simulate creating a bunch of fsid_t's and run some tests on that list. It isn't a real world distribution but it would probably be pretty close, outside of ZFS. ZFS FSIDs have 8 bits of shared vfs type, but the remaining 56 bits appears to be generated by arc4rand(9), so ZFS FSIDs will have good distribution even without hashing. Anyway, maybe this is helpful, maybe not. Thanks for working on scaling exports, and NFS in general! It is appreciated. Take care, Conrad From owner-freebsd-fs@freebsd.org Wed May 8 17:33:25 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A833158ED88 for ; Wed, 8 May 2019 17:33:25 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail104.syd.optusnet.com.au (mail104.syd.optusnet.com.au [211.29.132.246]) by mx1.freebsd.org (Postfix) with ESMTP id 3ED8C86A81; Wed, 8 May 2019 17:33:13 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from [192.168.0.102] (c110-21-101-228.carlnfd1.nsw.optusnet.com.au [110.21.101.228]) by mail104.syd.optusnet.com.au (Postfix) with ESMTPS id C6B64438F16; Thu, 9 May 2019 03:33:02 +1000 (AEST) Date: Thu, 9 May 2019 03:33:01 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Conrad Meyer cc: Rick Macklem , "freebsd-fs@freebsd.org" Subject: Re: test hash functions for fsid In-Reply-To: Message-ID: <20190509015851.J1574@besplex.bde.org> References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=P6RKvmIu c=1 sm=1 tr=0 cx=a_idp_d a=PalzARQSbocsUSjMRkwAPg==:117 a=PalzARQSbocsUSjMRkwAPg==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=kj9zAlcOel0A:10 a=hF2rLc1pAAAA:8 a=oLN-b00mV-6PYYPs_TgA:9 a=7I_NG7zuy4-b4ME3:21 a=VU27sKedNTBlt2fD:21 a=CjuIK1q_8ugA:10 a=O9OM7dhJW_8Hj9EqqvKN:22 X-Rspamd-Queue-Id: 3ED8C86A81 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of brde@optusnet.com.au designates 211.29.132.246 as permitted sender) smtp.mailfrom=brde@optusnet.com.au X-Spamd-Result: default: False [-5.40 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; RCVD_IN_DNSWL_LOW(-0.10)[246.132.29.211.list.dnswl.org : 127.0.5.1]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; R_SPF_ALLOW(-0.20)[+ip4:211.29.132.0/23]; FREEMAIL_FROM(0.00)[optusnet.com.au]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[optusnet.com.au]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TO_DN_SOME(0.00)[]; MX_INVALID(0.50)[greylisted]; TO_MATCH_ENVRCPT_SOME(0.00)[]; NEURAL_HAM_SHORT(-0.93)[-0.931,0]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; IP_SCORE(-2.67)[ip: (-7.32), ipnet: 211.28.0.0/14(-3.35), asn: 4804(-2.67), country: AU(-0.01)]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[optusnet.com.au]; ASN(0.00)[asn:4804, ipnet:211.28.0.0/14, country:AU]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 May 2019 17:33:25 -0000 On Wed, 8 May 2019, Conrad Meyer wrote: > On Wed, May 8, 2019 at 7:39 AM Rick Macklem wrote: >> If you have a FreeBSD system with lots of local file systems (1000s), maybe you could >> run the attached program on it and email me the stats. >> I'm just trying to see how well these hash functions work on fsids. > > Below I'll get to some comments on hash functions and hash tables, but > first: have you considered a non-hash data structure, such as PCTRIE? > PCTRIE_DEFINE() creates a datastructure with similar properties to a > hash table for this use, but does not require a hash function step at > all because all fsids are already unique, fixed-size, 64-bit values. > It may be especially space-efficient for non-ZFS FSIDs, when the > 64-bit key is composed with '(fsid.val[1] << 32 | fsid.val[0])'. > (Elaborated on more below.(A)) fsids must be unique in 32 bits, especially for nfs uses, since they are usually blindly truncated to 32 bits in nfs clients that have 32-bit dev_t to form st_dev, but st_dev must be unique. The FreeBSD-5 client blindly truncates: vap->va_fsid = vp->v_mount->mnt_stat.f_fsid.val[0]; The FreeBSD-11 client does the same for nfsv3, but for nfsv4 it does hashing stuff to convert from a 128-bit (?) na_filesid to 32 bits. va_fsid isn't really an fsid. It is a dev_t in all versions of FreeBSD, so it is too small to hold the 64-bit fsids created by vfs_getnewfsid() in all versions of FreeBSD except recent versions where dev_t is also 64 bits -- it works accidentally for them. > (A) FSIDs themselves have poor initial distribution and *very* few > unique bits (i.e., for filesystems that use vfs_getnewfsid, the int32 > fsid val[1] will be identical across all filesystems of the same type, > such as NFS mounts). The remaining val[0] is unique due to an > incrementing global counter. val[1] is useless unless there are more than 256 fs types, since it is already in the top 8 bits of the 24-bit minor number in fsid.val[0], except on systems with 8-bit minor numbers and in buggy versions of nfs that truncate the minor number to 8 bits (very old versions of oldnfs and not so old versions of newnfs). val[1] should never be used since it gets truncated away in many cases. val[0] has 16 bits of uniqueness from the counter, 8 mostly wasted for distinguishing the fs type, and another 8 bits even more mostly wasted for distinguishing the device type (255 for all synthetic devices was to stay away from major numbers 0-254 for physical devices, but devfs made all major numbers for physical devices 0). In some versions of FreeBSD, changing makedev() broke the uniqueness of val[0] by shifting the major bits into obvlivion (so synthetic devices were not distinguishable from physical devices, and since physical devices uses a dense set of minor numbers, collisions were likely). The difference between servers and clients' use of fsid is confusing, and I probably got some of the above wrong by conflating them. Clients should generate fsids unique in 32 bits. Using vfs_getnewfsid() and ignoring val[1] almost does this. This is needed to support applications using compat syscalls with 32-bit dev_t in st_dev and other places. Other file systems should also avoid actually using 64-bit dev_t for the same reason. Using devfs almost does this. It might be possible to generated more than 2**24 ptys so that the minor numbers start using the top 32 bits, but this is foot-shooting and hopefully disk devices are already allocated with low minor numbers. Devices which can back file systems should be in a different namespace (e.g., major == 1) to avoid this problem. I think device numbers from servers are only visible to clients for special files. Uniqueness then is not so important, but I found that changing makedev() broke it by noticing that server device numbers were truncated on clients. If the server fsid_t or dev_t is larger than the client fsid_t or dev_t, then there is no way that the client can represent all server numbers. Hashing can work for sparse numbers, but is complicated. Servers should also not actually use 64-bit dev_t. Bruce From owner-freebsd-fs@freebsd.org Wed May 8 18:13:25 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 30918158FBC2 for ; Wed, 8 May 2019 18:13:25 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail106.syd.optusnet.com.au (mail106.syd.optusnet.com.au [211.29.132.42]) by mx1.freebsd.org (Postfix) with ESMTP id 4781888124; Wed, 8 May 2019 18:13:22 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from [192.168.0.102] (c110-21-101-228.carlnfd1.nsw.optusnet.com.au [110.21.101.228]) by mail106.syd.optusnet.com.au (Postfix) with ESMTPS id E753D3DB368; Thu, 9 May 2019 04:13:13 +1000 (AEST) Date: Thu, 9 May 2019 04:13:13 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Conrad Meyer cc: Rick Macklem , "freebsd-fs@freebsd.org" Subject: Re: test hash functions for fsid In-Reply-To: Message-ID: <20190509033852.W1574@besplex.bde.org> References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=P6RKvmIu c=1 sm=1 tr=0 cx=a_idp_d a=PalzARQSbocsUSjMRkwAPg==:117 a=PalzARQSbocsUSjMRkwAPg==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=kj9zAlcOel0A:10 a=dwDVpSKmk84E3L1OXAwA:9 a=uzXCp8bNZQQqBMJV:21 a=0mOM27thKD44Px-G:21 a=CjuIK1q_8ugA:10 X-Rspamd-Queue-Id: 4781888124 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of brde@optusnet.com.au designates 211.29.132.42 as permitted sender) smtp.mailfrom=brde@optusnet.com.au X-Spamd-Result: default: False [-5.29 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; RCVD_IN_DNSWL_LOW(-0.10)[42.132.29.211.list.dnswl.org : 127.0.5.1]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; R_SPF_ALLOW(-0.20)[+ip4:211.29.132.0/23]; FREEMAIL_FROM(0.00)[optusnet.com.au]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[optusnet.com.au]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TO_DN_SOME(0.00)[]; MX_INVALID(0.50)[cached]; TO_MATCH_ENVRCPT_SOME(0.00)[]; NEURAL_HAM_SHORT(-0.75)[-0.753,0]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; IP_SCORE(-2.74)[ip: (-7.68), ipnet: 211.28.0.0/14(-3.34), asn: 4804(-2.66), country: AU(-0.01)]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[optusnet.com.au]; ASN(0.00)[asn:4804, ipnet:211.28.0.0/14, country:AU]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 May 2019 18:13:25 -0000 On Wed, 8 May 2019, Conrad Meyer wrote: Another reply. > (A) FSIDs themselves have poor initial distribution and *very* few > unique bits (i.e., for filesystems that use vfs_getnewfsid, the int32 > fsid val[1] will be identical across all filesystems of the same type, > such as NFS mounts). The remaining val[0] is unique due to an > incrementing global counter. You could pretty easily extract the > vfs_getnewfsid() code out to userspace to simulate creating a bunch of > fsid_t's and run some tests on that list. It is a bug to actually use val[1] or 64-bit dev_t. Using it is either unnecessary because val[0] is unique, or breaks compat syscalls. See my previous reply. (I have a patch to make the compat syscalls fail if they would truncate the dev_t, but it is too strict to be the default and I forget if I committed it). > It isn't a real world > distribution but it would probably be pretty close, outside of ZFS. > ZFS FSIDs have 8 bits of shared vfs type, but the remaining 56 bits > appears to be generated by arc4rand(9), so ZFS FSIDs will have good > distribution even without hashing. Bug in zfs. Even stat(1) doesn't understand these 64-bit numbers. It misformats them in decimal: $ stat ~ 16921688315829575803 2179998 drwxr-xr-x 62 bde bde 18446744073709551615 85 "Nov 25 21:21:07 2016" "May 8 16:33:55 2019" "May 8 16:33:55 2019" "Sep 28 00:06:41 2015" 5632 24 0x800 /home/bde The first large number is st_dev and the second large number is st_rdev. The decimal formatting of these is hard enough to read when they are 32 bits. The 1844 number looks a like it is near UINT64_MAX, and is in fact exactly that, so it is far from unique. It is apparently just NODEV = (dev_t)(-1). This is correct except for the formatting, while in ffs st_rdev is garbage except for actual devices, since ufs_getattr() sets va_rdev to di_rdev even for non-devices, but for non-devices di_rdev is an alias for the first block number. I did commit my checks for truncation of dev_t's (r335035 and r335053). Fixing makedev() put the synthetic major number 255 in vfs_getnewfsid() back in the low 32 bits, so the checks usually pass for nfs. However, for zfs, they would often fail for the large number in st_dev, and always fail for regular files for the large number NODEV = UINT64_MAX in st_rdev. They should fail for NODEV for regular files on all file systems. Bruce From owner-freebsd-fs@freebsd.org Wed May 8 23:53:01 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CB7D11596D67 for ; Wed, 8 May 2019 23:53:01 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-TO1-obe.outbound.protection.outlook.com (mail-eopbgr670081.outbound.protection.outlook.com [40.107.67.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 743296D51B for ; Wed, 8 May 2019 23:53:00 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM (52.132.70.13) by YQBPR0101MB2115.CANPRD01.PROD.OUTLOOK.COM (52.132.72.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.15; Wed, 8 May 2019 23:52:58 +0000 Received: from YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM ([fe80::e92e:7851:66e9:3967]) by YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM ([fe80::e92e:7851:66e9:3967%7]) with mapi id 15.20.1856.012; Wed, 8 May 2019 23:52:58 +0000 From: Rick Macklem To: Peter Eriksson CC: "freebsd-fs@freebsd.org" Subject: Re: test hash functions for fsid Thread-Topic: test hash functions for fsid Thread-Index: AQHVBauTkubp5doP8E+dPPSC2TDxraZhjMQAgABX9rw= Date: Wed, 8 May 2019 23:52:58 +0000 Message-ID: References: , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 76bab312-60e3-4cb4-bc03-08d6d4104c56 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(49563074)(7193020); SRVR:YQBPR0101MB2115; x-ms-traffictypediagnostic: YQBPR0101MB2115: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 0031A0FFAF x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(366004)(136003)(346002)(396003)(376002)(199004)(189003)(81166006)(81156014)(8676002)(2906002)(74316002)(446003)(256004)(5024004)(186003)(11346002)(71190400001)(6916009)(25786009)(8936002)(486006)(71200400001)(316002)(786003)(52536014)(46003)(305945005)(478600001)(5660300002)(476003)(4744005)(229853002)(14454004)(66616009)(64756008)(66476007)(66556008)(66446008)(55016002)(9686003)(99936001)(6436002)(76176011)(53936002)(86362001)(6506007)(7696005)(102836004)(33656002)(73956011)(68736007)(99286004)(6246003)(66946007)(74482002)(76116006)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:YQBPR0101MB2115; H:YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: uoguelph.ca does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: uMFINemAasPmwzezGe2sQDXh8ZD30vKJ9/C7TFORApd6ICDEp8hayShQlQ+WNCICNAtQCPxjDKLK7lyEE+mYbXIorY6NxMe/C5ju2FsPAYBppabU+ryHm0Y9j8MziByDiLAtJLw9FJnkGxrbDhJg0K2xN/471Fl4sG58u8ODubO6MiV00Csp/M7et+FMCzkqzhq9RchQVYyJVMwmJF0topAeK37kyQnGYCsj0zpJObpNwN3m0MPbqUTTKVNzJA8ExZw3hCLQa1absLtyJmDtCS/fQCqWxXsTXbBA+fmou0ToSu/aaNz4lHb1GcXVAYB2LKSm+IEWjYmzpNGosf7aP0/u8I7kRdEmIIgu31BiyqJpyXgb3I0zA6Dy+wGWzQtRUSuLvP4tM0S9SqUd4PI3xZXl1pqU0heE6gMzBt2rZeQ= Content-Type: multipart/mixed; boundary="_002_YQBPR0101MB2260AA6B2642A5DDE49D4A35DD320YQBPR0101MB2260_" MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-Network-Message-Id: 76bab312-60e3-4cb4-bc03-08d6d4104c56 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 May 2019 23:52:58.4162 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQBPR0101MB2115 X-Rspamd-Queue-Id: 743296D51B X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of rmacklem@uoguelph.ca designates 40.107.67.81 as permitted sender) smtp.mailfrom=rmacklem@uoguelph.ca X-Spamd-Result: default: False [-0.96 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; NEURAL_HAM_MEDIUM(-0.97)[-0.967,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; NEURAL_HAM_LONG(-0.99)[-0.991,0]; HAS_ATTACHMENT(0.00)[]; MIME_GOOD(-0.10)[multipart/mixed,text/plain]; DMARC_NA(0.00)[uoguelph.ca]; NEURAL_SPAM_SHORT(0.21)[0.206,0]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[cached: mx2.hc184-76.ca.iphmx.com]; CTYPE_MIXED_BOGUS(1.00)[]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_NONE(0.00)[81.67.107.40.list.dnswl.org : 127.0.3.0]; MIME_BASE64_TEXT(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+]; RCVD_TLS_LAST(0.00)[] X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 May 2019 23:53:02 -0000 --_002_YQBPR0101MB2260AA6B2642A5DDE49D4A35DD320YQBPR0101MB2260_ Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Peter wrote: >Here=92s the output from a couple of our servers (filur00 with around 2428= 9 zfs >filesystems, balur01 with about 72350 zfs filesystems, filur04 about= 7500 zfs >filesystems): > > >Lpeter86@filur00:~ % ./testhash >H1: max=3D24290 min=3D0 >H2: max=3D24290 min=3D0 >H3: max=3D24290 min=3D0 >H4: max=3D24290 min=3D0 > >Lpeter86@balur01:~ % /tmp/testhash >H1: max=3D73343 min=3D0 >H2: max=3D73343 min=3D0 >H3: max=3D73343 min=3D0 >H4: max=3D73343 min=3D0 > >Lpeter86@filur04:~ % /tmp/testhash >H1: max=3D7560 min=3D0 >H2: max=3D7560 min=3D0 >H3: max=3D7560 min=3D0 >H4: max=3D7560 min=3D0 > I'll admit when I first looked at this, I was baffled;-) Turns out the f_fsid field is just zeros when getmntinfo() is run by non-ro= ot. Please do this again as "root". I have attached a slightly modified version with an additional trivial hash and it calculates variance. Thanks for doing this, rick --_002_YQBPR0101MB2260AA6B2642A5DDE49D4A35DD320YQBPR0101MB2260_ Content-Type: text/plain; name="testhash.c" Content-Description: testhash.c Content-Disposition: attachment; filename="testhash.c"; size=2448; creation-date="Wed, 08 May 2019 23:52:45 GMT"; modification-date="Wed, 08 May 2019 23:52:45 GMT" Content-Transfer-Encoding: base64 I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxlcnIuaD4KI2luY2x1ZGUgPHN5cy9wYXJhbS5o PgojaW5jbHVkZSA8c3lzL2Zudl9oYXNoLmg+CiNpbmNsdWRlIDxzeXMvaGFzaC5oPgojaW5jbHVk ZSA8c3lzL21vdW50Lmg+CgppbnQKbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQp7CglpbnQg aDFbMjU2XSwgaDJbMjU2XSwgaDNbMjU2XSwgaDRbMjU2XSwgaDVbMjU2XSwgaSwgbWF4LCBtaW4s IG51bTsKCXN0cnVjdCBzdGF0ZnMgKm1udGJ1ZnA7CglmbG9hdCBhdmUsIHZhcmksIHRvdHZhcmk7 CgoJZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7CgkJaDFbaV0gPSAwOwoJCWgyW2ldID0gMDsK CQloM1tpXSA9IDA7CgkJaDRbaV0gPSAwOwoJCWg1W2ldID0gMDsKCX0KCW51bSA9IGdldG1udGlu Zm8oJm1udGJ1ZnAsIE1OVF9OT1dBSVQpOwoJaWYgKG51bSA9PSAwKQoJCWVycngoMSwgIk11c3Qg YmUgcnVuIGFzIHJvb3QiKTsKCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgewoJCWgxW2Zudl8z Ml9idWYoJm1udGJ1ZnBbaV0uZl9mc2lkLCBzaXplb2YoZnNpZF90KSwgMCkgJSAyNTZdKys7CgkJ aDJbZm52XzMyX2J1ZigmbW50YnVmcFtpXS5mX2ZzaWQsIHNpemVvZihmc2lkX3QpLCBGTlYxXzMy X0lOSVQpICUgMjU2XSsrOwoJCWgzW2hhc2gzMl9idWYoJm1udGJ1ZnBbaV0uZl9mc2lkLCBzaXpl b2YoZnNpZF90KSwgMCkgJSAyNTZdKys7CgkJaDRbaGFzaDMyX2J1ZigmbW50YnVmcFtpXS5mX2Zz aWQsIHNpemVvZihmc2lkX3QpLCBIQVNISU5JVCkgJSAyNTZdKys7CgkJaDVbbW50YnVmcFtpXS5m X2ZzaWQudmFsWzBdICUgMjU2XSsrOwoJfQoJYXZlID0gKGZsb2F0KW51bSAvIDI1Ni4wOwoJbWlu ID0gMTAwMDAwMDA7CgltYXggPSAwOwoJdG90dmFyaSA9IDAuMDsKCWZvciAoaSA9IDA7IGkgPCAy NTY7IGkrKykgewoJCWlmIChoMVtpXSA+IG1heCkKCQkJbWF4ID0gaDFbaV07CgkJaWYgKGgxW2ld IDwgbWluKQoJCQltaW4gPSBoMVtpXTsKCQlpZiAoKGZsb2F0KWgxW2ldID4gYXZlKQoJCQl2YXJp ID0gKGZsb2F0KWgxW2ldIC0gYXZlOwoJCWVsc2UKCQkJdmFyaSA9IGF2ZSAtIChmbG9hdCloMVtp XTsKCQl0b3R2YXJpICs9IHZhcmk7Cgl9CglwcmludGYoIkgxOiBtYXg9JWQgbWluPSVkIHRvdHZh cmk9JWZcbiIsIG1heCwgbWluLCB0b3R2YXJpKTsKCW1pbiA9IDEwMDAwMDAwOwoJbWF4ID0gMDsK CXRvdHZhcmkgPSAwLjA7Cglmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKCQlpZiAoaDJbaV0g PiBtYXgpCgkJCW1heCA9IGgyW2ldOwoJCWlmIChoMltpXSA8IG1pbikKCQkJbWluID0gaDJbaV07 CgkJaWYgKChmbG9hdCloMltpXSA+IGF2ZSkKCQkJdmFyaSA9IChmbG9hdCloMltpXSAtIGF2ZTsK CQllbHNlCgkJCXZhcmkgPSBhdmUgLSAoZmxvYXQpaDJbaV07CgkJdG90dmFyaSArPSB2YXJpOwoJ fQoJcHJpbnRmKCJIMjogbWF4PSVkIG1pbj0lZCB0b3R2YXJpPSVmXG4iLCBtYXgsIG1pbiwgdG90 dmFyaSk7CgltaW4gPSAxMDAwMDAwMDsKCW1heCA9IDA7Cgl0b3R2YXJpID0gMC4wOwoJZm9yIChp ID0gMDsgaSA8IDI1NjsgaSsrKSB7CgkJaWYgKGgzW2ldID4gbWF4KQoJCQltYXggPSBoM1tpXTsK CQlpZiAoaDNbaV0gPCBtaW4pCgkJCW1pbiA9IGgzW2ldOwoJCWlmICgoZmxvYXQpaDNbaV0gPiBh dmUpCgkJCXZhcmkgPSAoZmxvYXQpaDNbaV0gLSBhdmU7CgkJZWxzZQoJCQl2YXJpID0gYXZlIC0g KGZsb2F0KWgzW2ldOwoJCXRvdHZhcmkgKz0gdmFyaTsKCX0KCXByaW50ZigiSDM6IG1heD0lZCBt aW49JWQgdG90dmFyaT0lZlxuIiwgbWF4LCBtaW4sIHRvdHZhcmkpOwoJbWluID0gMTAwMDAwMDA7 CgltYXggPSAwOwoJdG90dmFyaSA9IDAuMDsKCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgewoJ CWlmIChoNFtpXSA+IG1heCkKCQkJbWF4ID0gaDRbaV07CgkJaWYgKGg0W2ldIDwgbWluKQoJCQlt aW4gPSBoNFtpXTsKCQlpZiAoKGZsb2F0KWg0W2ldID4gYXZlKQoJCQl2YXJpID0gKGZsb2F0KWg0 W2ldIC0gYXZlOwoJCWVsc2UKCQkJdmFyaSA9IGF2ZSAtIChmbG9hdCloNFtpXTsKCQl0b3R2YXJp ICs9IHZhcmk7Cgl9CglwcmludGYoIkg0OiBtYXg9JWQgbWluPSVkIHRvdHZhcmk9JWZcbiIsIG1h eCwgbWluLCB0b3R2YXJpKTsKCW1pbiA9IDEwMDAwMDAwOwoJbWF4ID0gMDsKCXRvdHZhcmkgPSAw LjA7Cglmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKCQlpZiAoaDVbaV0gPiBtYXgpCgkJCW1h eCA9IGg1W2ldOwoJCWlmIChoNVtpXSA8IG1pbikKCQkJbWluID0gaDVbaV07CgkJaWYgKChmbG9h dCloNVtpXSA+IGF2ZSkKCQkJdmFyaSA9IChmbG9hdCloNVtpXSAtIGF2ZTsKCQllbHNlCgkJCXZh cmkgPSBhdmUgLSAoZmxvYXQpaDVbaV07CgkJdG90dmFyaSArPSB2YXJpOwoJfQoJcHJpbnRmKCJI NTogbWF4PSVkIG1pbj0lZCB0b3R2YXJpPSVmXG4iLCBtYXgsIG1pbiwgdG90dmFyaSk7Cn0K --_002_YQBPR0101MB2260AA6B2642A5DDE49D4A35DD320YQBPR0101MB2260_-- From owner-freebsd-fs@freebsd.org Thu May 9 00:41:33 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9E2861597D56 for ; Thu, 9 May 2019 00:41:33 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-QB1-obe.outbound.protection.outlook.com (mail-eopbgr660055.outbound.protection.outlook.com [40.107.66.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A89396EB1A; Thu, 9 May 2019 00:41:32 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM (52.132.70.13) by YQBPR0101MB1764.CANPRD01.PROD.OUTLOOK.COM (52.132.71.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.10; Thu, 9 May 2019 00:41:31 +0000 Received: from YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM ([fe80::e92e:7851:66e9:3967]) by YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM ([fe80::e92e:7851:66e9:3967%7]) with mapi id 15.20.1856.012; Thu, 9 May 2019 00:41:31 +0000 From: Rick Macklem To: "cem@freebsd.org" CC: "freebsd-fs@freebsd.org" Subject: Re: test hash functions for fsid Thread-Topic: test hash functions for fsid Thread-Index: AQHVBauTkubp5doP8E+dPPSC2TDxraZhYDeAgACLOvU= Date: Thu, 9 May 2019 00:41:30 +0000 Message-ID: References: , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 51a9f5cf-1925-4122-21cb-08d6d4171462 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:YQBPR0101MB1764; x-ms-traffictypediagnostic: YQBPR0101MB1764: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-forefront-prvs: 003245E729 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(136003)(396003)(39860400002)(346002)(366004)(189003)(199004)(11346002)(486006)(74316002)(7696005)(6436002)(316002)(71190400001)(71200400001)(229853002)(5024004)(256004)(14444005)(5660300002)(446003)(305945005)(6246003)(9686003)(786003)(52536014)(2906002)(476003)(74482002)(99286004)(2351001)(4326008)(86362001)(478600001)(25786009)(76176011)(14454004)(68736007)(6306002)(6506007)(5640700003)(33656002)(53936002)(66946007)(81156014)(2501003)(66556008)(64756008)(66446008)(81166006)(6916009)(8676002)(8936002)(66476007)(1730700003)(73956011)(450100002)(102836004)(186003)(76116006)(46003)(55016002); DIR:OUT; SFP:1101; SCL:1; SRVR:YQBPR0101MB1764; H:YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: uoguelph.ca does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: ZxL/Oxnp0J2WGK++DhCAHkTkcAXSZWtI+q1/q8uwGzDg5ahCw4MQgqZ/ToW7vgfbHsyoN2uJF64Fuc/crXXX/efp3nyRkJ8blN8XEq1hpgYKq+lhySpQ2PsUGxLNn+QzewiTirKdiqLHXE4VUdLHpY4dF+GnMYq3VsviXhDcw0z3hXFA7r1KAJ/RtjYjftUnj21h8h60owo+E6H1AmGFxvkOchU2UwBw6+ogDgdoVAW5pXT6wI0PHLRhgWSmhs3KeVyrIJapoFRPzrrmxNQCqdXhhMu7Alp5aBKMkk9DvShIGWJ4NJ+GAPa3LlVpwdERXWebH/ozBugzuDzWM1s7rNVI4VOVExLBmX7HusyJ0C9zf1qdboZK1SgCvD2GCu1VWpD8ksSADLyh7etigmVH8uaCl5e6dSZwrgFNJ66hXJg= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-Network-Message-Id: 51a9f5cf-1925-4122-21cb-08d6d4171462 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 May 2019 00:41:30.9446 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQBPR0101MB1764 X-Rspamd-Queue-Id: A89396EB1A X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of rmacklem@uoguelph.ca designates 40.107.66.55 as permitted sender) smtp.mailfrom=rmacklem@uoguelph.ca X-Spamd-Result: default: False [-2.43 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.97)[-0.967,0]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[uoguelph.ca]; NEURAL_HAM_LONG(-1.00)[-0.996,0]; RCVD_COUNT_THREE(0.00)[3]; MX_GOOD(-0.01)[cached: mx2.hc184-76.ca.iphmx.com]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_NONE(0.00)[55.66.107.40.list.dnswl.org : 127.0.3.0]; NEURAL_HAM_SHORT(-0.16)[-0.159,0]; TO_DN_EQ_ADDR_ALL(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[] X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 May 2019 00:41:33 -0000 Conrad Meyer wrote: >On Wed, May 8, 2019 at 7:39 AM Rick Macklem wrote: >> If you have a FreeBSD system with lots of local file systems (1000s), ma= ybe you could >> run the attached program on it and email me the stats. >> I'm just trying to see how well these hash functions work on fsids. > >Below I'll get to some comments on hash functions and hash tables, but >first: have you considered a non-hash data structure, such as PCTRIE? >PCTRIE_DEFINE() creates a datastructure with similar properties to a >hash table for this use, but does not require a hash function step at >all because all fsids are already unique, fixed-size, 64-bit values. >It may be especially space-efficient for non-ZFS FSIDs, when the >64-bit key is composed with '(fsid.val[1] << 32 | fsid.val[0])'. >(Elaborated on more below.(A)) I'll admit I had never heard of PCTRIE, but seems to be #ifdef _KERNEL, so it can't be used in userland? >Usually it makes sense to size hash tables for the size of the data; >for direct insert tables you want to keep the load factor below 0.8 or >something like that. So the hardcoded 256 doesn't make a ton of >sense, IMO. Yes. I just chose 256 for this test program. Unfortunately, the way mountd.= c is currently coded, the hash table must be sized before the getmntinfo() call, so it must be sized before it knows how many file systems there are. Since this is userland and table size isn't a memory issue, I'm just tempte= d to make it large enough for a large server with something like 25,000 file sys= tems. (I'd guess somewhere in the 256->1024 range would work. I'm not sure what you mean by load factor below 0.8?) >As far as hash functions, both (hash32_buf =3D=3D djb2, FNV32) are really >weak, but importantly for hash tables, fast. >https://github.com/Cyan4973/smhasher#summary provides some broader >context, but keep in mind most of those algorithms are targeting much >longer keys than 8 bytes. I would guess that h1/h3 will be noticably >worse than h2/h4 without performing any better, but I don't have data >to back that up. > >(If you were to test calculate_crc32c() or XXH32/XXH64, included in >sys/contrib/zstd, you might observe fewer collisions and better >distribution. But that isn't necessarily the most important factor >for hash table performance in this use.) > >(A) FSIDs themselves have poor initial distribution and *very* few >unique bits (i.e., for filesystems that use vfs_getnewfsid, the int32 >fsid val[1] will be identical across all filesystems of the same type, >such as NFS mounts). The remaining val[0] is unique due to an >incrementing global counter. You could pretty easily extract the >vfs_getnewfsid() code out to userspace to simulate creating a bunch of >fsid_t's and run some tests on that list. Fortunately, neither ZFS nor UFS uses vfs_getnewfsid() unless there is a co= llision and I don't really care about other file system types. (To clarify for bde@ and others, this is for file systems exported by mount= d, which uses a single linked list for all the exported file systems, keyed o= n the f_fsid returned by statfs/getmntinfo. Since almost all exported file syste= ms are UFS of ZFS and I suspect only ZFS will have 1000s of file systems in an NF= S server box anytime soon, I don't really care how well others work. After all, it = just does a linear search down the list of N file systems right and just about anyth= ing should be an improvement.) >It isn't a real world >distribution but it would probably be pretty close, outside of ZFS. >ZFS FSIDs have 8 bits of shared vfs type, but the remaining 56 bits >appears to be generated by arc4rand(9), so ZFS FSIDs will have good >distribution even without hashing. I added a simple (take the low order bits of val[0]) case to the test. I ac= tually suspect any of the hash functions will work well enough, since, as you note= , most of the values (val[0] and 24bits of val[1]) are from a random # gene= rator which should be pretty uniform in distribution for ZFS. UFS now uses a value from the superblock. It appears that newfs sets val[0]= to the creation time of the file system and val[1] to a random value. If it had be= en the reverse, I would be tempted to only use val[0], but I'll see how well the t= est goes for Peter. (I didn't know, but it has to run as "root". When run as non-roo= t, the f_fsid field is returned as 0 for all file systems by getmntinfo().) Thanks, rick From owner-freebsd-fs@freebsd.org Thu May 9 01:53:00 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5938D1599516 for ; Thu, 9 May 2019 01:53:00 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id E828070F17 for ; Thu, 9 May 2019 01:52:59 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id A89C11599515; Thu, 9 May 2019 01:52:59 +0000 (UTC) Delivered-To: fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9646C1599513 for ; Thu, 9 May 2019 01:52:59 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.ysv.freebsd.org (mxrelay.ysv.freebsd.org [IPv6:2001:1900:2254:206a::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.ysv.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3431E70F15 for ; Thu, 9 May 2019 01:52:59 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.ysv.freebsd.org (Postfix) with ESMTPS id 638C0E695 for ; Thu, 9 May 2019 01:52:58 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id x491qwBL035312 for ; Thu, 9 May 2019 01:52:58 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id x491qw5N035311 for fs@FreeBSD.org; Thu, 9 May 2019 01:52:58 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: fs@FreeBSD.org Subject: [Bug 237637] ZFS kernel panic after removing a vdev Date: Thu, 09 May 2019 01:52:58 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 11.2-RELEASE X-Bugzilla-Keywords: panic X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: linimon@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: fs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: assigned_to keywords Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 May 2019 01:53:00 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D237637 Mark Linimon changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|bugs@FreeBSD.org |fs@FreeBSD.org Keywords| |panic --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-fs@freebsd.org Thu May 9 14:44:30 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1D692158347A for ; Thu, 9 May 2019 14:44:30 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id AD9A46BAD9 for ; Thu, 9 May 2019 14:44:29 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id 6E2E41583478; Thu, 9 May 2019 14:44:29 +0000 (UTC) Delivered-To: fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5BB3C1583476 for ; Thu, 9 May 2019 14:44:29 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.ysv.freebsd.org (mxrelay.ysv.freebsd.org [IPv6:2001:1900:2254:206a::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.ysv.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EE1846BAD6 for ; Thu, 9 May 2019 14:44:28 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.ysv.freebsd.org (Postfix) with ESMTPS id 4CC6E15523 for ; Thu, 9 May 2019 14:44:28 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id x49EiScf096742 for ; Thu, 9 May 2019 14:44:28 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id x49EiSwZ096741 for fs@FreeBSD.org; Thu, 9 May 2019 14:44:28 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: fs@FreeBSD.org Subject: [Bug 237807] ZFS: ZVOL writes fast, ZVOL reads abysmal... Date: Thu, 09 May 2019 14:44:27 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 12.0-STABLE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: linimon@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: fs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: assigned_to Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 May 2019 14:44:30 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D237807 Mark Linimon changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|bugs@FreeBSD.org |fs@FreeBSD.org --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-fs@freebsd.org Thu May 9 15:41:19 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7AB661584A5A for ; Thu, 9 May 2019 15:41:19 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-QB1-obe.outbound.protection.outlook.com (mail-eopbgr660076.outbound.protection.outlook.com [40.107.66.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 970E66DE3D; Thu, 9 May 2019 15:41:17 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM (52.132.70.13) by YQBPR0101MB1443.CANPRD01.PROD.OUTLOOK.COM (52.132.69.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1878.21; Thu, 9 May 2019 15:41:15 +0000 Received: from YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM ([fe80::e92e:7851:66e9:3967]) by YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM ([fe80::e92e:7851:66e9:3967%7]) with mapi id 15.20.1856.016; Thu, 9 May 2019 15:41:15 +0000 From: Rick Macklem To: "cem@freebsd.org" CC: "freebsd-fs@freebsd.org" Subject: Re: test hash functions for fsid Thread-Topic: test hash functions for fsid Thread-Index: AQHVBauTkubp5doP8E+dPPSC2TDxraZhYDeAgAGKXmU= Date: Thu, 9 May 2019 15:41:15 +0000 Message-ID: References: , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: fc8b4823-fc45-4d7b-7bc1-08d6d494c586 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:YQBPR0101MB1443; x-ms-traffictypediagnostic: YQBPR0101MB1443: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 003245E729 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(136003)(346002)(396003)(366004)(39860400002)(189003)(199004)(2351001)(46003)(9686003)(478600001)(6246003)(7696005)(33656002)(99286004)(14454004)(229853002)(74482002)(2906002)(786003)(55016002)(2501003)(486006)(74316002)(53936002)(68736007)(6436002)(11346002)(446003)(476003)(71190400001)(71200400001)(5640700003)(66476007)(66556008)(64756008)(66446008)(66946007)(76116006)(73956011)(4326008)(316002)(6916009)(25786009)(450100002)(6506007)(52536014)(102836004)(256004)(186003)(8936002)(5660300002)(8676002)(76176011)(305945005)(86362001)(81156014)(1730700003)(81166006); DIR:OUT; SFP:1101; SCL:1; SRVR:YQBPR0101MB1443; H:YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: uoguelph.ca does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: X141XRsO/ogRJ1yTqzf3u5eZ4m8X2zTzDpbHgODdZgC+UIYrIZjYS+xsRezbPhiIf828lzzaHyn2+b4xwAPv3gXVBfn4XU6xaLO5E7OLRdyrqYQ15BpvoqF0KvGtX2PevEmKhGtT9bHzxx7Yaxy+JQ9IFs8Z1cqOvUq7ai6ynDIZNKl0b0782JFF+u3I80gv199KH383/jO4DHGlPOJGaozUYBpZ4EHasmGMgN42rXZn8S0AXBC8cs+9PpoetPsjZtz4lrEsKOLr9G8C5nL8/t3afuE5XrBfzTw7AqAOUMtlw7T7KLeHPgySUXgw5JRTUqHuRYvAbELbG70FERgyqyp3mMY7CE4YOhHB70A2l+hOzNygXrsnmMVr3MAkJN2SupLQoknaVostCo+eepckj0zXCi8wUcZXnoUWj6vuybo= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-Network-Message-Id: fc8b4823-fc45-4d7b-7bc1-08d6d494c586 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 May 2019 15:41:15.3007 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQBPR0101MB1443 X-Rspamd-Queue-Id: 970E66DE3D X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of rmacklem@uoguelph.ca designates 40.107.66.76 as permitted sender) smtp.mailfrom=rmacklem@uoguelph.ca X-Spamd-Result: default: False [-1.98 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.91)[-0.915,0]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[uoguelph.ca]; NEURAL_HAM_LONG(-0.98)[-0.980,0]; NEURAL_SPAM_SHORT(0.23)[0.228,0]; RCVD_COUNT_THREE(0.00)[3]; MX_GOOD(-0.01)[mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com,mx2.hc184-76.ca.iphmx.com,mx1.hc184-76.ca.iphmx.com]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_NONE(0.00)[76.66.107.40.list.dnswl.org : 127.0.3.0]; TO_DN_EQ_ADDR_ALL(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[] X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 May 2019 15:41:19 -0000 Conrad Meyer wrote: [good stuff snipped] >Usually it makes sense to size hash tables for the size of the data; >for direct insert tables you want to keep the load factor below 0.8 or >something like that. So the hardcoded 256 doesn't make a ton of >sense, IMO. I took a closer look at the code and I think I can delay use of the hash ta= bles until after getmntinfo() returns the number of file systems, with a little tweaki= ng. Since Peter already has a server with over 72000 file systems, setting it d= ynamically seems worth doing. I didn't understand what you meant by load factor below 0.8, but how does num / 20 (where "num" is the number of file systems->entries to be hash= ed) sound for the size of the tables. (There would be one table now and a secon= d one allocated for the patch that does updated changes to the kernel, for a tota= l of two of them malloc()d when the daemon starts up. The tables are just SLIST_HEAD= ()s or one pointer per table entry. Btw, I will post Peter's test results if he says that's ok, but the first t= hree hashes work about equally well. For his big 72532 file system server and H1 (which seems to be the winner by a small fraction): Mean: 283 Ave variation about the mean: 13 (or less than 5%) [more good stuff snipped] Thanks, rick From owner-freebsd-fs@freebsd.org Thu May 9 16:15:59 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 811FA15854D0 for ; Thu, 9 May 2019 16:15:59 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-QB1-obe.outbound.protection.outlook.com (mail-eopbgr660065.outbound.protection.outlook.com [40.107.66.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7542D6EFD5 for ; Thu, 9 May 2019 16:15:58 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM (52.132.70.13) by YQBPR0101MB1922.CANPRD01.PROD.OUTLOOK.COM (52.132.72.158) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.14; Thu, 9 May 2019 16:15:56 +0000 Received: from YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM ([fe80::e92e:7851:66e9:3967]) by YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM ([fe80::e92e:7851:66e9:3967%7]) with mapi id 15.20.1856.016; Thu, 9 May 2019 16:15:56 +0000 From: Rick Macklem To: "freebsd-fs@freebsd.org" Subject: Re: test hash functions for fsid Thread-Topic: test hash functions for fsid Thread-Index: AQHVBauTkubp5doP8E+dPPSC2TDxraZhjMQAgABX9ryAAKQsgIAAZ04vgAAJFmg= Date: Thu, 9 May 2019 16:15:56 +0000 Message-ID: References: , <0CA718D0-3853-4DDE-B6E1-5BF828EEE19B@lysator.liu.se>, In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0a81d2d0-fcb7-4610-092d-08d6d4999dfe x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:YQBPR0101MB1922; x-ms-traffictypediagnostic: YQBPR0101MB1922: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 003245E729 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(136003)(376002)(366004)(346002)(396003)(199004)(189003)(45074003)(186003)(46003)(55016002)(305945005)(53936002)(6436002)(6246003)(52536014)(68736007)(71200400001)(7696005)(478600001)(71190400001)(76176011)(8936002)(6506007)(102836004)(66556008)(786003)(316002)(2351001)(2501003)(5024004)(256004)(14454004)(25786009)(66574012)(2940100002)(74316002)(476003)(33656002)(81156014)(81166006)(486006)(446003)(5660300002)(2906002)(99286004)(86362001)(11346002)(229853002)(9686003)(76116006)(66476007)(66946007)(73956011)(74482002)(8676002)(66446008)(6916009)(64756008); DIR:OUT; SFP:1101; SCL:1; SRVR:YQBPR0101MB1922; H:YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: uoguelph.ca does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 6nyCeIM8vQtjeLg6kzcln66Laymtuzz7Ir/W4+Kp1o2KnlpPbGbfNu3QcejRaOF6x7CaHdLGpe8VV/sRelxFE7zI8cSncTiCZtDRb4iZUcBAk2TLu8YFFYYhCIbSRtVIF6LQza7zbX0B0mL/IJGWGigjTKgAU1IreOoB4L9BjJdxfL03jf1MDaUc9Sbwg0e8niwub++FlZFwfujJU+E+WkxIueTCeYy6pAXY+NMEwd1P11+/85z+1jxRiDEFCKtUYF1SlVz0dlqWxGyE8rW/6+HUk00TbvkkXnFTMMmsD1r1fyCbgNAx4bm/fzfkmrf8VvwdwgCQ3F/PZzXdephtrZRCEs//VV6bSeAeuMwG4/MS2kZqjU3qcWyaDrTX4ue1B9oSMoMIpsc8et/Noso/TJfkaEMWV0Slel4/Kp2eGfQ= Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-Network-Message-Id: 0a81d2d0-fcb7-4610-092d-08d6d4999dfe X-MS-Exchange-CrossTenant-originalarrivaltime: 09 May 2019 16:15:56.5020 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQBPR0101MB1922 X-Rspamd-Queue-Id: 7542D6EFD5 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of rmacklem@uoguelph.ca designates 40.107.66.65 as permitted sender) smtp.mailfrom=rmacklem@uoguelph.ca X-Spamd-Result: default: False [-1.93 / 15.00]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; RCVD_COUNT_THREE(0.00)[3]; MX_GOOD(-0.01)[cached: mx2.hc184-76.ca.iphmx.com]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.94)[-0.942,0]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-0.99)[-0.993,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[uoguelph.ca]; RCPT_COUNT_ONE(0.00)[1]; NEURAL_SPAM_SHORT(0.31)[0.313,0]; RCVD_IN_DNSWL_NONE(0.00)[65.66.107.40.list.dnswl.org : 127.0.3.0]; TO_DN_EQ_ADDR_ALL(0.00)[] X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 May 2019 16:15:59 -0000 Peter Eriksson wrote: >Ah, of course. Sorry about that :-) Nothing to be sorry about. I didn't realize that f_fsid would be 0 for non-= root in the getmntinfo() reply. The test uses a hash table size of 256 and doesn't print Ave or Ave variati= on, so I added those manually. >Here=92s some output (as root): > ># Balur01 - 72352 zfs filesystems >root@balur01:/usr/home/Lpeter86 # /tmp/testhash >H1: max=3D340 min=3D237 totvari=3D3384.937500 >H2: max=3D338 min=3D238 totvari=3D3760.296875 >H3: max=3D333 min=3D241 totvari=3D3373.703125 >H4: max=3D487 min=3D277 totvari=3D36364.765625 >H5: max=3D324 min=3D107 totvari=3D36425.234375 Mean: 283 Ave variation about mean for best one: 13.2 (about 4.6%) ># Balur03 - 42023 zfs filesystems >root@balur03:/usr/home/Lpeter86 # /tmp/testhash >H1: max=3D202 min=3D135 totvari=3D2530.750000 >H2: max=3D203 min=3D128 totvari=3D2792.500000 >H3: max=3D196 min=3D127 totvari=3D2597.500000 >H4: max=3D288 min=3D166 totvari=3D20886.000000 >H5: max=3D165 min=3D55 totvari=3D20887.250000 Mean: 164 Ave variation about mean for best one: 9.8 (about 6%) ># Filur01 - 21182 zfs filesystems >root@filur01:/usr/home/Lpeter86 # /tmp/testhash >H1: max=3D111 min=3D60 totvari=3D1902.765625 >H2: max=3D113 min=3D56 totvari=3D1962.921875 >H3: max=3D116 min=3D58 totvari=3D1870.000000 >H4: max=3D158 min=3D83 totvari=3D10640.921875 >H5: max=3D79 min=3D23 totvari=3D10640.000000 Mean: 83 Ave variation about mean for best one: 7.3 (about 9%) ># Filur02 - 20981 zfs filesystems >root@filur02:/usr/home/Lpeter86 # /tmp/testhash >H1: max=3D115 min=3D60 totvari=3D1905.117188 >H2: max=3D106 min=3D62 totvari=3D1737.164062 >H3: max=3D105 min=3D57 totvari=3D1961.210938 >H4: max=3D157 min=3D77 totvari=3D10462.023438 >H5: max=3D84 min=3D26 totvari=3D10451.976562 Mean: 82 Ave variation about mean for best one: 6.8 (about 8%) ># Filur04 - 7500 zfs filesystems >root@filur04:/usr/home/Lpeter86 # /tmp/testhash >H1: max=3D43 min=3D14 totvari=3D1030.890625 >H2: max=3D48 min=3D16 totvari=3D1145.218750 >H3: max=3D46 min=3D17 totvari=3D1049.328125 >H4: max=3D63 min=3D25 totvari=3D3804.109375 Mean: 29 Ave variation about mean for best one: 4.0 (about 13%) ># Filur05 - 1478 zfs filesystems >root@filur05:/usr/home/Lpeter86 # /tmp/testhash >H1: max=3D14 min=3D1 totvari=3D505.429688 >H2: max=3D17 min=3D0 totvari=3D569.273438 >H3: max=3D14 min=3D1 totvari=3D509.234375 >H4: max=3D19 min=3D2 totvari=3D890.671875 >H5: max=3D10 min=3D0 totvari=3D806.742188 Mean: 6 Ave variation about mean for best one: 2.0 (about 33%) ># testy - 53 zfs filesystems >root@testy:/usr/home/Lpeter86 # /tmp/testhash >H1: max=3D2 min=3D0 totvari=3D91.531250 >H2: max=3D2 min=3D0 totvari=3D91.078125 >H3: max=3D3 min=3D0 totvari=3D92.437500 >H4: max=3D3 min=3D0 totvari=3D107.187500 >H5: max=3D3 min=3D0 totvari=3D79.046875 I won't bother with Mean, etc. since most lists would have been 0-2 entries= . The first 3 hashes appear to work about equally well, with H1 being the win= ner by a small margin. (H1 is fnv_32_buf() with an initial value of 0.) >Just for fun I=92ve also attached a screenshot from our =93management cons= ole=94 with a >current status of our FreeBSD fileserver (11:30, so is just = before lunch here). >Currently the number of NFS users are a bit on the low= side (more NFS clients are >being integrated all the time, but a lot is st= udent-driven (depends on what >classes/labs they are taken if the use the L= inux labs or not). Thanks for running the test Peter, rick ps: If anyone else has a server with a lot of file systems (particularily a= lot of UFS file systems), feel free to post test results. However, I think Peter's results have given me what I need, at least= for ZFS. pss: As a guy who code NFS when disk drives stored Mbytes and were the size= of washing machines, I still can't quite wrap my head around a server w= ith over 72,000 file systems on it;-) From owner-freebsd-fs@freebsd.org Thu May 9 18:11:20 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5DA301589B19 for ; Thu, 9 May 2019 18:11:20 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-it1-f171.google.com (mail-it1-f171.google.com [209.85.166.171]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 625AF72EEE for ; Thu, 9 May 2019 18:11:19 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-it1-f171.google.com with SMTP id q65so5135775itg.2 for ; Thu, 09 May 2019 11:11:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc:content-transfer-encoding; bh=JLwv82Mf5vJoaaWZ7Y5bQ0CS0ihiwgLQr119eJWxO10=; b=VcZLNP9ztTcbSMhc72oJi0C7AGVgJcybhICRUbRccw50wGO00cG5au3ZmC3H7e/a90 NgfnjUp0N4CDkTGB0Xe67M+J0ItAtlXZwWG6zBvtchS8ueDQGU0Cb7VkYMwA4uZzI908 36P0QfPLTL33RJW1RdpueECKZCJA+TEN29rRTjFvGXdzTkHtzZJv8J+m4tTlWqEOBs0s XHrOscQrgTNL9b/W8lLP8RCMlQkGN3esGFARTg460QC/XjfdE8BlSXjZykO2BQJc4LcD 68GavOLTV8P4wzZ5Oj+owmpqv7MDIKfwJ4leI+iSRdDNdcY1dAmoB9DMb9m1imW0/drS dTsg== X-Gm-Message-State: APjAAAVqoiRbhzzKh1nObmOOTFwwoMoiu6DToMDBqgavdLrY5dBWT+xL RoHzLk+OfOQgkwzzNkSleoSNF2Zp X-Google-Smtp-Source: APXvYqxD1tSglWKysIHTXeQRkc3RAo6YBHLaBVDBGVeaznQDcvxZv0/XoN0kv1hwlf6r9d24eZQ2Zg== X-Received: by 2002:a24:4f05:: with SMTP id c5mr4372198itb.102.1557425472913; Thu, 09 May 2019 11:11:12 -0700 (PDT) Received: from mail-io1-f45.google.com (mail-io1-f45.google.com. [209.85.166.45]) by smtp.gmail.com with ESMTPSA id w3sm1303084ita.43.2019.05.09.11.11.12 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 09 May 2019 11:11:12 -0700 (PDT) Received: by mail-io1-f45.google.com with SMTP id g84so2385407ioa.1 for ; Thu, 09 May 2019 11:11:12 -0700 (PDT) X-Received: by 2002:a5d:84ce:: with SMTP id z14mr3890245ior.107.1557425472124; Thu, 09 May 2019 11:11:12 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Reply-To: cem@freebsd.org From: Conrad Meyer Date: Thu, 9 May 2019 11:11:00 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: test hash functions for fsid To: Rick Macklem Cc: "freebsd-fs@freebsd.org" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 625AF72EEE X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of csecem@gmail.com designates 209.85.166.171 as permitted sender) smtp.mailfrom=csecem@gmail.com X-Spamd-Result: default: False [-5.48 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; HAS_REPLYTO(0.00)[cem@freebsd.org]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; REPLYTO_ADDR_EQ_FROM(0.00)[]; RCVD_COUNT_THREE(0.00)[4]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; FORGED_SENDER(0.30)[cem@freebsd.org,csecem@gmail.com]; IP_SCORE(-2.49)[ip: (-6.44), ipnet: 209.85.128.0/17(-3.69), asn: 15169(-2.27), country: US(-0.06)]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; TAGGED_FROM(0.00)[]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_NEQ_ENVFROM(0.00)[cem@freebsd.org,csecem@gmail.com]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-fs@freebsd.org]; DMARC_NA(0.00)[freebsd.org]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[171.166.85.209.list.dnswl.org : 127.0.5.0]; RCVD_TLS_LAST(0.00)[] X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 May 2019 18:11:20 -0000 Hi Rick, On Wed, May 8, 2019 at 5:41 PM Rick Macklem wrote: [liberal snipping throughout :-)] > > I'll admit I had never heard of PCTRIE, but seems to be > #ifdef _KERNEL, so it can't be used in userland? Ah, you're completely correct. I had considered using PCTRIE for a userspace application earlier, and had started converting it to be buildable in userspace, but I never finished. (I determined it wouldn't be a good fit for that application, unfortunately.) I do think it might be a good datastructure to expose to base userspace programs eventually, but you probably don't really want to tackle that extra work :-). A hash table is totally fine. > Yes. I just chose 256 for this test program. Unfortunately, the way mount= d.c is > currently coded, the hash table must be sized before the getmntinfo() cal= l, > so it must be sized before it knows how many file systems there are. > Since this is userland and table size isn't a memory issue, I'm just temp= ted to > make it large enough for a large server with something like 25,000 file s= ystems. No objection, so long as people can still run tiny NFS servers on their Raspberry Pis. :-) > (I'd guess somewhere in the 256->1024 range would work. I'm not sure what > you mean by load factor below 0.8?) Load factor is just number of valid entries divided by space in the table. So if your table has 256 spaces, load factor 0.8 would be having about 205 valid entries. > Fortunately, neither ZFS nor UFS uses vfs_getnewfsid() unless there is a = collision > and I don't really care about other file system types. Ah, sorry =E2=80=94 I didn't read carefully enough when looking for fsid in= itialization. > After all, it just does > a linear search down the list of N file systems right and just about any= thing > should be an improvement.) Yes :-). > I added a simple (take the low order bits of val[0]) case to the test. I = actually > suspect any of the hash functions will work well enough, since, as you no= te, most of the values (val[0] and 24bits of val[1]) are from a random # ge= nerator which should > be pretty uniform in distribution for ZFS. > UFS now uses a value from the superblock. It appears that newfs sets val[= 0] to the > creation time of the file system and val[1] to a random value. Hm, it looks like makefs sets val[1] (fs_id[1]) to a non-random value generated by the predictable PRNG random(3), for reproducible build reasons. makefs seeds srandom(3) with either the current time in seconds (low entropy) or some known timestamp (either from a file, also in seconds, or an integer) (no entropy). I guess random(3) may provide better distribution for the table than a plain global counter, though. > If it had been the > reverse, I would be tempted to only use val[0], but I'll see how well the= test goes > for Peter. Seems like you were right =E2=80=94 any old function is good enough :-). Take care, Conrad From owner-freebsd-fs@freebsd.org Thu May 9 21:44:00 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 80221158E8CF for ; Thu, 9 May 2019 21:44:00 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-TO1-obe.outbound.protection.outlook.com (mail-eopbgr670065.outbound.protection.outlook.com [40.107.67.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4822683421; Thu, 9 May 2019 21:43:58 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM (52.132.70.13) by YQBPR0101MB1555.CANPRD01.PROD.OUTLOOK.COM (52.132.68.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.15; Thu, 9 May 2019 21:43:56 +0000 Received: from YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM ([fe80::e92e:7851:66e9:3967]) by YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM ([fe80::e92e:7851:66e9:3967%7]) with mapi id 15.20.1856.016; Thu, 9 May 2019 21:43:56 +0000 From: Rick Macklem To: "cem@freebsd.org" CC: "freebsd-fs@freebsd.org" Subject: Re: test hash functions for fsid Thread-Topic: test hash functions for fsid Thread-Index: AQHVBauTkubp5doP8E+dPPSC2TDxraZhYDeAgACLOvWAAS5UAIAANU8e Date: Thu, 9 May 2019 21:43:56 +0000 Message-ID: References: , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f5844d2c-9986-48cd-ef21-08d6d4c77071 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:YQBPR0101MB1555; x-ms-traffictypediagnostic: YQBPR0101MB1555: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 003245E729 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(376002)(396003)(39860400002)(136003)(366004)(199004)(189003)(51914003)(5660300002)(14454004)(2351001)(9686003)(5640700003)(6916009)(7696005)(478600001)(25786009)(55016002)(6436002)(446003)(71190400001)(229853002)(74482002)(450100002)(2501003)(4326008)(86362001)(66946007)(305945005)(476003)(486006)(53936002)(81156014)(71200400001)(8936002)(81166006)(74316002)(52536014)(33656002)(11346002)(8676002)(14444005)(256004)(1730700003)(6506007)(6246003)(99286004)(76176011)(46003)(186003)(2906002)(68736007)(76116006)(102836004)(786003)(64756008)(66476007)(66556008)(66446008)(316002)(73956011); DIR:OUT; SFP:1101; SCL:1; SRVR:YQBPR0101MB1555; H:YQBPR0101MB2260.CANPRD01.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: uoguelph.ca does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: QeUzjVHrx1taItitQVdCRc+8+5T5bgz3NOzgR6//u/YxhTJF3n8KVmy3pZ37NtO7DV55dBvlvYKFaOlbskAMVuaWTEd2xVyIf1gITDb9seiHMmkz7L3CVfTGRtzvrIOUCbdN138iebYkLQEON8T6lLBNYif/AMtFcKi7mx5k2adHrJduu6spiEhRV7rDC9DTVpNxY+MeVcJXcWdhjY/g+FMmm6r15iVdg/PstbjMFihN9Z5p0oU8UOk59i5ZY/xSbDmTG8LuIoae/UXA7zL2MQYMauE5j1t8k0gKCBWVrLNkkSoSPoklx5baTNvwNbi/H+CqLv7pvV31rLjTRFK6QmCEZIYOVnV19GG6r4Ki2YM3z13ybtuFrfVbDNhlDH/74eYOXTqUFMjvC4vk1etnM9ryY1PIHJCmg6MK7qepUbk= Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-Network-Message-Id: f5844d2c-9986-48cd-ef21-08d6d4c77071 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 May 2019 21:43:56.9139 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQBPR0101MB1555 X-Rspamd-Queue-Id: 4822683421 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of rmacklem@uoguelph.ca designates 40.107.67.65 as permitted sender) smtp.mailfrom=rmacklem@uoguelph.ca X-Spamd-Result: default: False [-0.79 / 15.00]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[uoguelph.ca]; NEURAL_HAM_LONG(-0.98)[-0.981,0]; NEURAL_SPAM_MEDIUM(0.02)[0.015,0]; NEURAL_SPAM_SHORT(0.49)[0.486,0]; RCVD_COUNT_THREE(0.00)[3]; MX_GOOD(-0.01)[cached: mx2.hc184-76.ca.iphmx.com]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_NONE(0.00)[65.67.107.40.list.dnswl.org : 127.0.3.0]; TO_DN_EQ_ADDR_ALL(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[] X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 May 2019 21:44:00 -0000 Conrad Meyer wrote: >On Wed, May 8, 2019 at 5:41 PM Rick Macklem wrote: >[liberal snipping throughout :-)] >> >> I'll admit I had never heard of PCTRIE, but seems to be >> #ifdef _KERNEL, so it can't be used in userland? > >Ah, you're completely correct. I had considered using PCTRIE for a >userspace application earlier, and had started converting it to be >buildable in userspace, but I never finished. (I determined it >wouldn't be a good fit for that application, unfortunately.) I do >think it might be a good datastructure to expose to base userspace >programs eventually, but you probably don't really want to tackle that >extra work :-). A hash table is totally fine. > >> Yes. I just chose 256 for this test program. Unfortunately, the way moun= td.c is >> currently coded, the hash table must be sized before the getmntinfo() ca= ll, >> so it must be sized before it knows how many file systems there are. >> Since this is userland and table size isn't a memory issue, I'm just tem= pted to >> make it large enough for a large server with something like 25,000 file = systems. > >No objection, so long as people can still run tiny NFS servers on >their Raspberry Pis. :-) I do now think I can dynamically size it based on how many file systems (which is how many structures) will be linked off the table, so this should= n't be a problem. >> (I'd guess somewhere in the 256->1024 range would work. I'm not sure wha= t >> you mean by load factor below 0.8?) > >Load factor is just number of valid entries divided by space in the >table. So if your table has 256 spaces, load factor 0.8 would be >having about 205 valid entries. Hmm. That would suggest a large table size of about 100,000 for Peter's 72,000 file system case. It would result in a list length averaging about 1= entry, but I think a linear search through 10-20 entries won't take long enough to= be a problem for this case. (This happens whenever mountd receives a SIGHUP an= d each time a client does a mount.) As noted in the last post, I was thinking along the lines of 10->20 as a ta= rget linked list length. (Or "table_size =3D num / L", where L is the target ave= rage list length.=20 L =3D 10->20 would be roughly a load average of 10->20.) Does that sound reasonable? (Interested in hearing from anyone on this.) >> Fortunately, neither ZFS nor UFS uses vfs_getnewfsid() unless there is a= collision >> and I don't really care about other file system types. > >Ah, sorry =97 I didn't read carefully enough when looking for fsid initial= ization. > >> After all, it just does >> a linear search down the list of N file systems right and just about an= ything >> should be an improvement.) > >Yes :-). > >> I added a simple (take the low order bits of val[0]) case to the test. I= actually >> suspect any of the hash functions will work well enough, since, as you n= ote, most of the values (val[0] and 24bits of val[1]) are from a random # g= enerator which should >> be pretty uniform in distribution for ZFS. >> UFS now uses a value from the superblock. It appears that newfs sets val= [0] to the >> creation time of the file system and val[1] to a random value. > >Hm, it looks like makefs sets val[1] (fs_id[1]) to a non-random value >generated by the predictable PRNG random(3), for reproducible build >reasons. makefs seeds srandom(3) with either the current time in >seconds (low entropy) or some known timestamp (either from a file, >also in seconds, or an integer) (no entropy). I guess random(3) may >provide better distribution for the table than a plain global counter, >though. Yes. It would be the distribution of values and not their randomness that w= ould matter for this case. Hopefully someone with a large # of UFS file systems = will run the test program and post the results. To be honest, I doubt if anyone = will create a server with enough UFS file systems for it to be important to hash= their fsid well. It works fine for the small number of UFS file systems I have.) >> If it had been the >> reverse, I would be tempted to only use val[0], but I'll see how well th= e test goes >> for Peter. > >Seems like you were right =97 any old function is good enough :-). >From Peter's test, the first three did fine and almost the same. The last t= wo weren't as good, but were still tolerable. Thanks for the comments, rick From owner-freebsd-fs@freebsd.org Thu May 9 22:01:26 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 928D1158EE01 for ; Thu, 9 May 2019 22:01:26 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-it1-f175.google.com (mail-it1-f175.google.com [209.85.166.175]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7344C83B75 for ; Thu, 9 May 2019 22:01:25 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-it1-f175.google.com with SMTP id q65so6226516itg.2 for ; Thu, 09 May 2019 15:01:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc:content-transfer-encoding; bh=eiNQTL1WysjsYZOxsoK3tknczf+0im3gE964r0uGk4w=; b=qsKrMbh+vl1We89FCdppX/3kTbvHAsa4EI4IrOQ53jeVP/ApcJe/2UHaNdOa/3Kbpf NUb+ntk7GGVGivZIbmfP/FXxqSmwDqxuTpYggL8foLpQ8MmbGjUBhrSsqlIo/OcbE8zX QTCgYACd0DN9UGoT1TbWYzIJhp8G0MZAg5Pe+/frrioB0kdDl4LofxOZwVsUDKn53uvN hZiKUooKw5z2ebioWAkkqMBsE755KTeCEV0Moar8wUo7WC52LsA3q2zHgKyvnTcEOPzj IYwfM+V5d6djlL65OBwR4mTV6NaM2ucSQK+9rJNEmrxkrZGQUSqaVCVhE3bZ/21RPcQS /xww== X-Gm-Message-State: APjAAAUKcvKIXPWh1C+s2fBDSkE0Douoo+kLxhbsRFWB/F8iA7OHzxrx tkokc1VNAoSM++PNAxSxS2zvDBSM X-Google-Smtp-Source: APXvYqyJxUo5+DD+pTzArQw9o+GW5CWIx9AhY/3O+GnAOqAzMqhjUg19UfG7WPYjeWBumWX8w7/dnA== X-Received: by 2002:a02:5143:: with SMTP id s64mr5281708jaa.54.1557439278888; Thu, 09 May 2019 15:01:18 -0700 (PDT) Received: from mail-it1-f172.google.com (mail-it1-f172.google.com. [209.85.166.172]) by smtp.gmail.com with ESMTPSA id z21sm1377916ioz.16.2019.05.09.15.01.18 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 09 May 2019 15:01:18 -0700 (PDT) Received: by mail-it1-f172.google.com with SMTP id q65so6226436itg.2 for ; Thu, 09 May 2019 15:01:18 -0700 (PDT) X-Received: by 2002:a02:7410:: with SMTP id o16mr5080646jac.87.1557439278202; Thu, 09 May 2019 15:01:18 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Reply-To: cem@freebsd.org From: Conrad Meyer Date: Thu, 9 May 2019 15:01:07 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: test hash functions for fsid To: Rick Macklem Cc: "freebsd-fs@freebsd.org" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 7344C83B75 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; spf=pass (mx1.freebsd.org: domain of csecem@gmail.com designates 209.85.166.175 as permitted sender) smtp.mailfrom=csecem@gmail.com X-Spamd-Result: default: False [-5.34 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; HAS_REPLYTO(0.00)[cem@freebsd.org]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; REPLYTO_ADDR_EQ_FROM(0.00)[]; RCVD_COUNT_THREE(0.00)[4]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_HAM_SHORT(-0.98)[-0.982,0]; FORGED_SENDER(0.30)[cem@freebsd.org,csecem@gmail.com]; IP_SCORE(-2.35)[ip: (-5.73), ipnet: 209.85.128.0/17(-3.68), asn: 15169(-2.27), country: US(-0.06)]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[cem@freebsd.org,csecem@gmail.com]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; TAGGED_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-fs@freebsd.org]; DMARC_NA(0.00)[freebsd.org]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[175.166.85.209.list.dnswl.org : 127.0.5.0]; RCVD_TLS_LAST(0.00)[] X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 May 2019 22:01:26 -0000 Hi Rick, On Thu, May 9, 2019 at 2:44 PM Rick Macklem wrote: > I do now think I can dynamically size it based on how many file systems > (which is how many structures) will be linked off the table, so this shou= ldn't be > a problem. Great! > >Load factor is just number of valid entries divided by space in the > >table. So if your table has 256 spaces, load factor 0.8 would be > >having about 205 valid entries. > > Hmm. That would suggest a large table size of about 100,000 for Peter's > 72,000 file system case. It would result in a list length averaging about= 1 entry, Yeah, that's usually how hash tables are sized =E2=80=94 aiming for a list length of 1 (for chaining hash tables) or relatively short probe sequence (for open addressing / embedded entry tables). It's what provides the various "O(1)" properties hash tables ostensibly have. > but I think a linear search through 10-20 entries won't take long enough = to be > a problem for this case. (This happens whenever mountd receives a SIGHUP = and each time a client does a mount.) Yes, it might not be noticeable in this application either way. > As noted in the last post, I was thinking along the lines of 10->20 as a = target > linked list length. (Or "table_size =3D num / L", where L is the target a= verage list length. > L =3D 10->20 would be roughly a load average of 10->20.) > > Does that sound reasonable? (Interested in hearing from anyone on this.) Wikipedia discusses it a little bit: https://en.wikipedia.org/wiki/Hash_table#Key_statistics Facebook recently open sourced their general-purpose C++ hashtable implementations and talk at length about various tradeoffs, including load: https://code.fb.com/developer-tools/f14/?r=3D1 It might be interesting to read. Anyway, usually it's a number less than 1. 10-20x is unconventional. > Yes. It would be the distribution of values and not their randomness that= would > matter for this case. Hopefully someone with a large # of UFS file system= s will > run the test program and post the results. To be honest, I doubt if anyon= e will > create a server with enough UFS file systems for it to be important to ha= sh their > fsid well. It works fine for the small number of UFS file systems I have.= ) Maybe pho@ will take that as a challenge. You could create a lot of UFS filesystems with mdconfig and enough RAM. > Thanks for the comments, rick Cheers, Conrad From owner-freebsd-fs@freebsd.org Fri May 10 17:04:36 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C990715A7AD4 for ; Fri, 10 May 2019 17:04:36 +0000 (UTC) (envelope-from tim.petrone1@hemscot.com) Received: from sv19.hanbai.com (sv19.hanbai.com [49.212.219.206]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 205F381D45 for ; Fri, 10 May 2019 17:04:34 +0000 (UTC) (envelope-from tim.petrone1@hemscot.com) Received: from [74.208.253.180] ([74.208.253.180]) (authenticated) by sv19.hanbai.com (unknown) with ESMTP id x4AGoejj001312 for ; Sat, 11 May 2019 02:04:32 +0900 Message-Id: <201905101704.x4AGoejj001312@sv19.hanbai.com> Content-Type: text/plain; charset="iso-8859-1" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Description: Mail message body Subject: 5-10-19 To: freebsd-fs@freebsd.org From: "Timothy Petrone" Date: Fri, 10 May 2019 17:04:31 +0000 Reply-To: tim.petrone@tcbnbp.com X-Rspamd-Queue-Id: 205F381D45 X-Spamd-Bar: +++++ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [5.40 / 15.00]; ARC_NA(0.00)[]; HAS_REPLYTO(0.00)[tim.petrone@tcbnbp.com]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_SPAM_SHORT(0.95)[0.953,0]; MIME_GOOD(-0.10)[text/plain]; TO_DN_NONE(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-fs@freebsd.org]; AUTH_NA(1.00)[]; RCPT_COUNT_ONE(0.00)[1]; NEURAL_SPAM_MEDIUM(1.00)[1.000,0]; RCVD_TLS_LAST(0.00)[]; MX_GOOD(-0.01)[cached: park-mx.above.com]; NEURAL_SPAM_LONG(1.00)[1.000,0]; DMARC_NA(0.00)[hemscot.com]; R_SPF_NA(0.00)[]; REPLYTO_DOM_NEQ_FROM_DOM(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:9371, ipnet:49.212.0.0/16, country:JP]; RCVD_COUNT_TWO(0.00)[2]; IP_SCORE(1.56)[ipnet: 49.212.0.0/16(4.32), asn: 9371(3.52), country: JP(-0.06)] X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 May 2019 17:04:37 -0000 Good day, I have this proposal to share with you and I'm hopeful your experience will= be helpful in closing. Get back to me for more details if interested. Regards, Timothy Petrone. T: +31 970 050 34732 From owner-freebsd-fs@freebsd.org Sat May 11 02:59:11 2019 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CBFB0158FD2D for ; Sat, 11 May 2019 02:59:11 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id 65DE56F258 for ; Sat, 11 May 2019 02:59:11 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id 22D0F158FD2C; Sat, 11 May 2019 02:59:11 +0000 (UTC) Delivered-To: fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F2AAE158FD2B for ; Sat, 11 May 2019 02:59:10 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.ysv.freebsd.org (mxrelay.ysv.freebsd.org [IPv6:2001:1900:2254:206a::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.ysv.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7AD4B6F257 for ; Sat, 11 May 2019 02:59:10 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.ysv.freebsd.org (Postfix) with ESMTPS id 996C58CD6 for ; Sat, 11 May 2019 02:59:09 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id x4B2x9qV070947 for ; Sat, 11 May 2019 02:59:09 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id x4B2x930070946 for fs@FreeBSD.org; Sat, 11 May 2019 02:59:09 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f From: bugzilla-noreply@freebsd.org To: fs@FreeBSD.org Subject: [Bug 237807] ZFS: ZVOL writes fast, ZVOL reads abysmal... Date: Sat, 11 May 2019 02:59:08 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 12.0-STABLE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: sigsys@gmail.com X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: fs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cc Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 May 2019 02:59:12 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D237807 sigsys@gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |sigsys@gmail.com --- Comment #2 from sigsys@gmail.com --- These are random reads right? How are you benchmarking it? Is it over iSCSI? If the benchmark program sends its read requests one after the other (i.e.,= it waits before a read returns before sending the next), then it's effectively waiting on one random read being dispatched to one disk every time. So it's the latency of disks that is being the limiting factor and there isn't much= of anything that can be done to reduce that latency (apart from caching). And I think that the way that gstat measures %busy is that it gives you the fraction of time for which there was at least one operation in-flight. So because the zvol is almost always waiting on at least one disk, it is nearly 100% busy when measured this way. I'm guessing it just wasn't designed to measure the performance of devices that could potentially serve a lot reque= sts concurrently. I'm not certain though. The way to speed this up is for the zvol to receive concurrent read request= s.=20 This way they can be dispatched to multiple disks concurrently. If you can do that, running multiple benchmarks at the same time on the zvol should show a much higher total throughput. Or maybe you can tell the benchmark program to use multiple threads/processes or use AIO. Maybe it's trying to send concurrent reads, but the problem is that somewhe= re along the way, requests get serialized. Say you use iSCSI or a VM, then the benchmark program must have a way to tell the client kernel to issue concur= rent requests (if that IO is done through a FS, then that FS must have good supp= ort for issuing IO concurrently), then this must be translated to concurrent requests over iSCSI (through TCQ) or whatever VM<->Host protocol. And then this must be translated to concurrent requests over the zvol (which might n= ot happen in all cases depending on how that zvol is being interfaced with, I'm not sure). Even if all that works well you probably won't get the full throughput that you would get locally but it should still be much better th= an the performance of a single disk. In any case, your pool should be able to serve way more requests than that = in total, but when it's directed to a single zvol there has to be a way to sub= mit them concurrently. --=20 You are receiving this mail because: You are the assignee for the bug.=