From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Zheng Chuan <zhengchuan@huawei.com>
Cc: zhang.zhanghailiang@huawei.com, quintela@redhat.com,
linyilu@huawei.com, qemu-devel@nongnu.org,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
alex.chen@huawei.com, ann.zhuangyanying@huawei.com,
fangying1@huawei.com
Subject: Re: [PATCH v3 05/10] migration/dirtyrate: Record hash results for each sampled page
Date: Fri, 21 Aug 2020 13:30:14 +0100 [thread overview]
Message-ID: <20200821123014.GK348677@redhat.com> (raw)
In-Reply-To: <95894cf7-ba09-9862-357a-1073a192e934@huawei.com>
On Fri, Aug 21, 2020 at 08:22:06PM +0800, Zheng Chuan wrote:
>
>
> On 2020/8/21 1:55, Dr. David Alan Gilbert wrote:
> > * Daniel P. Berrangé (berrange@redhat.com) wrote:
> >> On Thu, Aug 20, 2020 at 06:30:09PM +0100, Dr. David Alan Gilbert wrote:
> >>> * Chuan Zheng (zhengchuan@huawei.com) wrote:
> >>>> Record hash results for each sampled page.
> >>>>
> >>>> Signed-off-by: Chuan Zheng <zhengchuan@huawei.com>
> >>>> Signed-off-by: YanYing Zhuang <ann.zhuangyanying@huawei.com>
> >>>> ---
> >>>> migration/dirtyrate.c | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++
> >>>> migration/dirtyrate.h | 7 +++
> >>>> 2 files changed, 151 insertions(+)
> >>>>
> >>>> diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c
> >>>> index c4304ef..62b6f69 100644
> >>>> --- a/migration/dirtyrate.c
> >>>> +++ b/migration/dirtyrate.c
> >>>> @@ -25,6 +25,7 @@
> >>>> #include "dirtyrate.h"
> >>>>
> >>>> CalculatingDirtyRateState CalculatingState = CAL_DIRTY_RATE_INIT;
> >>>> +static unsigned long int qcrypto_hash_len = QCRYPTO_HASH_LEN;
> >>>
> >>> Why do we need this static rather than just using the QCRYPTO_HASH_LEN ?
> >>> It's never going to change is it?
> >>> (and anyway it's just a MD5 len?)
> >>
> >> I wouldn't want to bet on that given that this is use of MD5. We might
> >> claim this isn't security critical, but surprises happen, and we will
> >> certainly be dinged on security audits for introducing new use of MD5
> >> no matter what.
> >>
> >> If a cryptographic hash is required, then sha256 should be the choice
> >> for any new code that doesn't have back compat requirements.
> >>
> >> If a cryptographic hash is not required then how about crc32
> >
> > It doesn't need to be cryptographic; is crc32 the fastest reasonable hash for use
> > in large areas?
> >
> > Dave
> >
> >> IOW, it doesn't make a whole lot of sense to say we need a cryptographic
> >> hash, but then pick the most insecure one.
> >>
> >> sha256 is slower than md5, but it is conceivable that in future we might
> >> gain support for something like Blake2b which is similar security level
> >> to SHA3, while being faster than MD5.
> >>
> >> Overall I'm pretty unethusiastic about use of MD5 being introduced and
> >> worse, being hardcoded as the only option.
> >>
> >> Regards,
> >> Daniel
> >> --
> >> |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
> >> |: https://libvirt.org -o- https://fstop138.berrange.com :|
> >> |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
>
> Hi, Daniel, Dave.
>
> I do compare MD5 and SHA256 with vm memory of 128G under mempress of 100G.
>
> 1. Calculation speed
> 1) MD5 takes about 500ms to sample and hash all pages by record_ramblock_hash_info().
> 2) SHA256 takes about 750ms to sample all pages by record_ramblock_hash_info().
>
> 2. CPU Consumption
> 1) MD5 may have instant rise up to 48% for dirtyrate thread
> 2) SHA256 may have instant rise up to 75% for dirtyrate thread
>
> 3. Memory Consumption
> SHA256 may need twice memory than MD5 due to its HASH_LEN.
>
> I am trying to consider if crc32 is more faster and takes less memory and is more safer than MD5?
No, crc32 is absolutely *weaker* than MD5. It is NOT a cryptographic
hash so does not try to guarantee collision resistance. It only has
2^32 possible outputs.
MD5 does try to guarantee collision resistance, but MD5 is considered
broken these days, so a malicious attacker can cause collisions if they
are motivated enough.
IOW if you need collision resistance that SHA256 should be used.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2020-08-21 12:31 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-17 3:20 [PATCH v3 00/10] *** A Method for evaluating dirty page rate *** Chuan Zheng
2020-08-17 3:19 ` no-reply
2020-08-17 3:20 ` [PATCH v3 01/10] migration/dirtyrate: Add get_dirtyrate_thread() function Chuan Zheng
2020-08-20 16:11 ` Dr. David Alan Gilbert
2020-08-21 9:59 ` Zheng Chuan
2020-08-17 3:20 ` [PATCH v3 02/10] migration/dirtyrate: Add RamlockDirtyInfo to store sampled page info Chuan Zheng
2020-08-20 16:20 ` Dr. David Alan Gilbert
2020-08-21 9:59 ` Zheng Chuan
2020-08-21 12:08 ` Dr. David Alan Gilbert
2020-08-17 3:20 ` [PATCH v3 03/10] migration/dirtyrate: Add dirtyrate statistics series functions Chuan Zheng
2020-08-20 16:28 ` Dr. David Alan Gilbert
2020-08-21 9:59 ` Zheng Chuan
2020-08-17 3:20 ` [PATCH v3 04/10] migration/dirtyrate: move RAMBLOCK_FOREACH_MIGRATABLE into ram.h Chuan Zheng
2020-08-20 16:31 ` Dr. David Alan Gilbert
2020-08-17 3:20 ` [PATCH v3 05/10] migration/dirtyrate: Record hash results for each sampled page Chuan Zheng
2020-08-20 17:30 ` Dr. David Alan Gilbert
2020-08-20 17:51 ` Daniel P. Berrangé
2020-08-20 17:55 ` Dr. David Alan Gilbert
2020-08-21 12:22 ` Zheng Chuan
2020-08-21 12:30 ` Daniel P. Berrangé [this message]
2020-08-21 12:39 ` Dr. David Alan Gilbert
2020-08-21 13:07 ` Zheng Chuan
2020-08-22 6:25 ` Zheng Chuan
2020-08-24 8:57 ` Dr. David Alan Gilbert
2020-08-17 3:20 ` [PATCH v3 06/10] migration/dirtyrate: Compare page hash results for recorded " Chuan Zheng
2020-08-20 17:36 ` Dr. David Alan Gilbert
2020-08-21 12:01 ` Zheng Chuan
2020-08-21 12:12 ` Dr. David Alan Gilbert
2020-08-17 3:20 ` [PATCH v3 07/10] migration/dirtyrate: skip sampling ramblock with size below MIN_RAMBLOCK_SIZE Chuan Zheng
2020-08-20 17:39 ` Dr. David Alan Gilbert
2020-08-17 3:20 ` [PATCH v3 08/10] migration/dirtyrate: Implement get_sample_page_period() and block_sample_page_period() Chuan Zheng
2020-08-20 17:52 ` Dr. David Alan Gilbert
2020-08-17 3:20 ` [PATCH v3 09/10] migration/dirtyrate: Implement calculate_dirtyrate() function Chuan Zheng
2020-08-20 17:57 ` Dr. David Alan Gilbert
2020-08-21 9:59 ` Zheng Chuan
2020-08-17 3:20 ` [PATCH v3 10/10] migration/dirtyrate: Implement qmp_cal_dirty_rate()/qmp_get_dirty_rate() function Chuan Zheng
2020-08-20 17:17 ` Eric Blake
2020-08-20 18:00 ` Dr. David Alan Gilbert
2020-08-21 10:00 ` Zheng Chuan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200821123014.GK348677@redhat.com \
--to=berrange@redhat.com \
--cc=alex.chen@huawei.com \
--cc=ann.zhuangyanying@huawei.com \
--cc=dgilbert@redhat.com \
--cc=fangying1@huawei.com \
--cc=linyilu@huawei.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=zhang.zhanghailiang@huawei.com \
--cc=zhengchuan@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).