From owner-freebsd-hackers@freebsd.org Sat Aug 15 16:54:51 2020 Return-Path: Delivered-To: freebsd-hackers@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D95453BF3EC for ; Sat, 15 Aug 2020 16:54:51 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-qt1-x833.google.com (mail-qt1-x833.google.com [IPv6:2607:f8b0:4864:20::833]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 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 4BTRHZ5q9lz4Pg3 for ; Sat, 15 Aug 2020 16:54:50 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: by mail-qt1-x833.google.com with SMTP id s16so9311153qtn.7 for ; Sat, 15 Aug 2020 09:54:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=B23NEXk7+JGmwmzuYcHtL6zm97/MsVMVfIlt4yuwGHg=; b=MG1bNZ6TSfikvQ587Rps7h51RcBOGgblNh9DdnkF19tfCGqhA+U1mtEDCtsXg7HM57 zWJrjCJdiUAGCwqCcpZbR4sEXv0GTNmdyNGin3hQnCUqY+bpTg/sXDvy7meosaUF1z3h UdDFpNr3loviBb9cR/S4S4yjeuttp/z3FAsdfcxmTCS1knldaevnlwQoHmF/ZBH1gNIP cKdjxR7RzcZ8OBxqlUJQ5Q25zkNrj7qSOwMJkGjy4mx0XGVwKnKXRoM3rj+uX4PgnDd7 cmA0RDeqQp0+o6NHLqTKyClQUY8NjpPBIwuyd8eNfoWm91ZR9FT9vg3nBmVuTVCz8qLt fxqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to; bh=B23NEXk7+JGmwmzuYcHtL6zm97/MsVMVfIlt4yuwGHg=; b=F4KDYSayDG2L+atfA3k+0AaXUr+EqOE4SRInaEcqhZyMv7Orx5ubJRCVu+Xt5rICbO dLlh4dquHJWETviJK7UXCcyVHru6F45f8ZGQ/pSkKS5Sw70Kb6fXnqaiwxj7uWf8Qc3r 7F7Zj0VkZXRAgdj/hP4GzMZs2ekYki65OASVyBL22E2f5xUBGocKhB3gbwUv0db71yj8 S48PjwAXfM+U82QMk9CHY9rB1Mzd2Msf56XVUVFtZMT1Jl/Ufu/Vi7u3DoT9YNktW4ny eOfIv4dlSwyo9ORpvJkfk7rGLdd+d99+TXidc9wqFNwx7OfnCzp3FbO0J1Bi/yFK0Ctw uU9Q== X-Gm-Message-State: AOAM533YdNmXNZNM2pOTmbl7DhrffkJHrteB5qRcHgGN3+kR5zcOs3tU uOq0qmzDu2QMeyCQALf2BgLqGOGJTTM= X-Google-Smtp-Source: ABdhPJyqojY0Ek8nZY1VqHiunBksXCNgbZrcFqvqGMC04AGGmDxggy1jPLBXe6YaiYnScesC891BHw== X-Received: by 2002:ac8:6c49:: with SMTP id z9mr7150591qtu.110.1597510489562; Sat, 15 Aug 2020 09:54:49 -0700 (PDT) Received: from raichu (toroon0560w-lp130-08-67-71-176-35.dsl.bell.ca. [67.71.176.35]) by smtp.gmail.com with ESMTPSA id b131sm11836094qkc.121.2020.08.15.09.54.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Aug 2020 09:54:48 -0700 (PDT) Sender: Mark Johnston Date: Sat, 15 Aug 2020 12:54:38 -0400 From: Mark Johnston To: Wojciech Puchar Cc: freebsd-hackers@freebsd.org Subject: Re: gmirror balance model "prefer" doesnt work properly Message-ID: <20200815165438.GA41502@raichu> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1597510491; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:dkim-signature; bh=B23NEXk7+JGmwmzuYcHtL6zm97/MsVMVfIlt4yuwGHg=; b=FSylBBe5iUBuJeEm2hV2KI7T4AwT0u1E+QgjUkeT+YcZH1q86eatTUNB4r/oClkfPibWGv uk9BT0/kfOyG2PKwciPeWs0glWOHjG6zLfw6Vpqb1e57VDYmA/SrwooXrsSU5cy+0SigZi StUspvRpj3ZG8+jpmZw2NP5GMPuAxZbcjBGPJeg8Ji32lGAM3lNrWDKgbiZms49jhGJb0p N/5njWyMoVGnaRwV4m5W70eCpwgzgCVMb5Pm6p6VZ60fJhtzDnM+ZvlOJgXF5oHmZwom70 Nxs5sOzq/uHBGDFDVY6hpAqYRFhu6Elq8TbKzLFdW2xiABC+KTyMqVkiySb46Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1597510491; a=rsa-sha256; cv=none; b=j0BcjaIKtofwN54WdpFCKofKWU7NOjt3T27ePTfy9smMg1LK1rH7+zwy5P1rpw3WHGHrJe /Xwwhul2Z/cBFgQefArzqtI5Ue3bR5GdgT68OmmCwydV03Nik+NFMy3yl++kFSUz0PCOtE raHMPWa9UHKg1kI7A4r1qdQ+bT6sEjYD3J4ySO0wErSwSUUg/JPPZru6LVR/XlqwI9yiy+ V1IOu5j5He5kMmT9KR3DjTtMuQLEw9MR8qrIQEwpClhZT0tFXaOQ0Wkud+DLffz6F2kkYT eCL8DAWg1LZuBTV0QWaSu++aQ3CrpLku+1yIqc0v5oTDQ1pKI4mCiL1H13p4AQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=MG1bNZ6T; spf=pass (mx1.freebsd.org: domain of markjdb@gmail.com designates 2607:f8b0:4864:20::833 as permitted sender) smtp.mailfrom=markjdb@gmail.com X-Rspamd-Queue-Id: 4BTRHZ5q9lz4Pg3 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=MG1bNZ6T; dmarc=none; spf=pass (mx1.freebsd.org: domain of markjdb@gmail.com designates 2607:f8b0:4864:20::833 as permitted sender) smtp.mailfrom=markjdb@gmail.com X-Spamd-Result: default: False [-2.36 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; NEURAL_HAM_MEDIUM(-1.00)[-1.004]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; NEURAL_HAM_LONG(-0.98)[-0.984]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; ARC_SIGNED(0.00)[i=1]; DMARC_NA(0.00)[freebsd.org]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::833:from]; NEURAL_HAM_SHORT(-0.67)[-0.673]; MID_RHS_NOT_FQDN(0.50)[]; FORGED_SENDER(0.30)[markj@freebsd.org,markjdb@gmail.com]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[markj@freebsd.org,markjdb@gmail.com]; RCVD_TLS_ALL(0.00)[] X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Aug 2020 16:54:51 -0000 On Sat, Aug 15, 2020 at 11:34:07AM +0200, Wojciech Puchar wrote: > ada0p3 is partition on SSD, ada3p3 is partition on magnetic disk. > > > > Geom name: root > State: COMPLETE > Components: 2 > Balance: prefer > Slice: 2097152 > Flags: NONE > GenID: 0 > SyncID: 1 > ID: 3736675121 > Type: AUTOMATIC > Providers: > 1. Name: mirror/root > Mediasize: 107374181888 (100G) > Sectorsize: 512 > Stripesize: 4096 > Stripeoffset: 0 > Mode: r1w1e1 > Consumers: > 1. Name: ada0p3 > Mediasize: 107374182400 (100G) > Sectorsize: 512 > Stripesize: 0 > Stripeoffset: 525139968 > Mode: r1w1e1 > State: ACTIVE > Priority: 1 > Flags: (null) > GenID: 0 > SyncID: 1 > ID: 3655477467 > 2. Name: ada3p3 > Mediasize: 107374182400 (100G) > Sectorsize: 512 > Stripesize: 4096 > Stripeoffset: 0 > Mode: r1w1e1 > State: ACTIVE > Priority: 0 > Flags: NONE > GenID: 0 > SyncID: 1 > ID: 3836554217 > > > according to manual reads should be preferred from device of higher > priority. i've set priority 1 for ssd, 0 for hdd. but reads are from hdd > only. > > tried reverse - 0 for ssd, 1 for hdd - too reads are from hdd. > > looking in code seems like it is not implemented at all > > LIST_FOREACH(disk, &sc->sc_disks, d_next) { > if (disk->d_state == G_MIRROR_DISK_STATE_ACTIVE) > break; > } > > > just take first active disk. > > why? The highest priority disk is supposed to be first in the list. However, the list is only sorted once the mirror is started, which is arguably the bug. If you restart the mirror after adjusting the disk priorities, I'd expect the "prefer" algorithm to work properly.