From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 075241FF138 for ; Mon, 29 Jun 2026 10:38:04 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 1CF288B56; Mon, 29 Jun 2026 10:38:03 +0200 (CEST) Message-ID: <88319e84-0f2b-4a76-a7f1-fae5774138c6@proxmox.com> Date: Mon, 29 Jun 2026 10:37:58 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Christian Ebner Subject: Re: [RFC PATCH proxmox-backup 2/6] fix #7024: pxar: show archiver summary for legacy and data mode To: Shan Shaji , pbs-devel@lists.proxmox.com References: <20260610180208.801614-1-s.shaji@proxmox.com> <20260610180208.801614-3-s.shaji@proxmox.com> Content-Language: en-US, de-DE In-Reply-To: <20260610180208.801614-3-s.shaji@proxmox.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1782722267783 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.069 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: 7BSZAU7XVBSJ4CTJXJI6PVSANMGXC5KF X-Message-ID-Hash: 7BSZAU7XVBSJ4CTJXJI6PVSANMGXC5KF X-MailFrom: c.ebner@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox Backup Server development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: On 6/10/26 8:02 PM, Shan Shaji wrote: > earlier, the archiver summary was only being shown when the change > detection mode is metadata. To improve this, log the total number of > files and the amount of data re-encoded for legacy and data modes > as well. > > Signed-off-by: Shan Shaji > --- > pbs-client/src/pxar/create.rs | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/pbs-client/src/pxar/create.rs b/pbs-client/src/pxar/create.rs > index c7f26879e..9100ac1a3 100644 > --- a/pbs-client/src/pxar/create.rs > +++ b/pbs-client/src/pxar/create.rs > @@ -348,6 +348,15 @@ where > ), > archiver.progress_stats.partial_chunks_count, > ); > + } else { > + info!("Processing summary:"); > + info!( > + "- {} total files ({} hardlinks) with {} data", > + archiver.progress_stats.files_reencoded_count > + + archiver.progress_stats.files_hardlink_count, nit: the total here is basically the same as for the metadata mode above (since reuse being 0) this could therefore be defined as common helper (see suggested diff below). But maybe even better, since you move these to atomic counters in patch 3 anyways, maybe reorder them and do the conversion first, then you already have the helper you need at hand anyways. > + archiver.progress_stats.files_hardlink_count, > + HumanByte::from(archiver.progress_stats.total_reencoded_size), > + ); > } > Ok(()) > } diff --git a/pbs-client/src/pxar/create.rs b/pbs-client/src/pxar/create.rs index 56296171e..e541b829b 100644 --- a/pbs-client/src/pxar/create.rs +++ b/pbs-client/src/pxar/create.rs @@ -161,6 +161,14 @@ struct PxarArchiverProgressStats { total_reencoded_size: u64, } +impl PxarArchiverProgressStats { + fn total_files_processed(&self) -> u64 { + self.files_reused_count + + self.files_reencoded_count + + self.files_hardlink_count + } +} + #[derive(Serialize, Deserialize)] #[serde(rename_all = "kebab-case")] pub(crate) struct PbsClientPrelude { @@ -325,9 +333,7 @@ where info!("Change detection summary:"); info!( " - {} total files ({} hardlinks)", - archiver.progress_stats.files_reused_count - + archiver.progress_stats.files_reencoded_count - + archiver.progress_stats.files_hardlink_count, + archiver.progress_stats.total_files_processed(), archiver.progress_stats.files_hardlink_count, ); info!( @@ -352,8 +358,7 @@ where info!("Processing summary:"); info!( "- {} total files ({} hardlinks) with {} data", - archiver.progress_stats.files_reencoded_count - + archiver.progress_stats.files_hardlink_count, + archiver.progress_stats.total_files_processed(), archiver.progress_stats.files_hardlink_count, HumanByte::from(archiver.progress_stats.total_reencoded_size), );