From owner-freebsd-bugs@freebsd.org Sat Nov 21 11:55:55 2015 Return-Path: Delivered-To: freebsd-bugs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6905BA34A6C for ; Sat, 21 Nov 2015 11:55:55 +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 mx1.freebsd.org (Postfix) with ESMTPS id 3B49B14A0 for ; Sat, 21 Nov 2015 11:55:55 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id tALBttrW038512 for ; Sat, 21 Nov 2015 11:55:55 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 204716] boot loader bcache is trashed by larger sequential reads from zfs/ufs Date: Sat, 21 Nov 2015 11:55:55 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 11.0-CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: tsoome@me.com X-Bugzilla-Status: New X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter attachments.created Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Nov 2015 11:55:55 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204716 Bug ID: 204716 Summary: boot loader bcache is trashed by larger sequential reads from zfs/ufs Product: Base System Version: 11.0-CURRENT Hardware: Any OS: Any Status: New Severity: Affects Many People Priority: --- Component: kern Assignee: freebsd-bugs@FreeBSD.org Reporter: tsoome@me.com Created attachment 163375 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=163375&action=edit loader-performance-boost patch this work is direct result of findings while working on loader support on illumos; since illumos kernel needs not just kernel itself but also rather large boot_archive (especially in case of installer image or smartos), I have noticed slow read of large files. while investigating possible causes, I noticed the block cache trashing (huge number of misses from bcachestat) after loading large files. So i did implement additional mechanism to make larger reads to bypass the bcache and it resulted huge boost in file loading, also quite visible in case of freebsd. note the switch off condition for bcache in libstand/read.c is arbitrary (2*512B sectors) and perhaps the better solution is possible, however it seems to provide "good enough" results. read() change is to help to boost zfs reader, for ufs I did add bcache disabler for file read call, so other reads should benefit from bcache. Since for illumos support I had to add mechanism to recognize gzip'ped files, I did leave in the compression specific flags in attached diff, perhaps the order of the flags should be reversed to avoid including compression flags for fbsd... for now I left it as is:) -- You are receiving this mail because: You are the assignee for the bug.