From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 598AAC07E95 for ; Tue, 13 Jul 2021 06:50:57 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 419C7611AC for ; Tue, 13 Jul 2021 06:50:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 419C7611AC Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BD5906E037; Tue, 13 Jul 2021 06:50:55 +0000 (UTC) Received: from mail-oi1-x22c.google.com (mail-oi1-x22c.google.com [IPv6:2607:f8b0:4864:20::22c]) by gabe.freedesktop.org (Postfix) with ESMTPS id 597D46E039 for ; Tue, 13 Jul 2021 06:50:54 +0000 (UTC) Received: by mail-oi1-x22c.google.com with SMTP id q16so13360160oiw.6 for ; Mon, 12 Jul 2021 23:50:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=b8lDM5VJGbqZhlRkcvbnGDphjz98NS0as6f1mCKaU7I=; b=HSNSUofRBz0kWxB6wdmLnLmV6nDg6y5Rr2iORIiS5hYBT3oFjxtOqbDyA+0W/gf3Df ba6GkjM6bvR7Brg/bRARjV8/zqrOUfhozWXnAL4tmz8ibbNy1EuCZmtKf2sYS/GKv5I0 v0uSXe4HH+5OLJ9U1mRJ8gysbXkLvLZLNzI4g= 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:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=b8lDM5VJGbqZhlRkcvbnGDphjz98NS0as6f1mCKaU7I=; b=PAXnwGCfLzCoi22a+b6uEBq/a1lq4DuzuknnWzQEAqdc32hDs4lgTBA5gqE0NS8796 fAIJ87FG3/rYmGURQ4VmegfLtOBsKpmVbJJYoIxvXXWgfp04Z1urx+9seL120aw60M/B 2WPwNoukWL+MwAejrgGyJpNrLUYWsb0ZjE4vjW9flnAX9x/3fnylQRWv+h+S7taodYog UXm/775ZPZ3oFqPyH1jwzsrgXpaXKbwSEgiakreej3Ya0ZPO94aaj6Z5DrusU4Y/Yts/ GJgSIB9CJeYbinGU3Cr6cVCbMCDcHyAn0oPLdoFBQ4f20zh9sMcdJIQCI//fRtj+WGD6 cg4g== X-Gm-Message-State: AOAM533TtTW1ZoohhQ9sHO34IsQKYKfVOVK2FxdPqQess0610EkFToKT CV39IkIHY0CjTmOCVHPZ0bWjknLjSY/pNmIyRrRuJA== X-Google-Smtp-Source: ABdhPJwy0buaZM9zigqkPSPi36/H6WIicyhqoJYKehRSZRGWf8WOAmmmuiFlvQ82YqZR9DR8DwrY+VYL3c1tj86EKA8= X-Received: by 2002:aca:4b55:: with SMTP id y82mr13296907oia.14.1626159053643; Mon, 12 Jul 2021 23:50:53 -0700 (PDT) MIME-Version: 1.0 References: <20210712175352.802687-1-daniel.vetter@ffwll.ch> <20210712175352.802687-3-daniel.vetter@ffwll.ch> <2cd9df9e-08e5-d0bd-d4d3-aed00f699e4a@amd.com> In-Reply-To: <2cd9df9e-08e5-d0bd-d4d3-aed00f699e4a@amd.com> From: Daniel Vetter Date: Tue, 13 Jul 2021 08:50:42 +0200 Message-ID: To: =?UTF-8?Q?Christian_K=C3=B6nig?= Subject: Re: [Intel-gfx] [PATCH v4 02/18] drm/sched: Barriers are needed for entity->last_scheduled X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrey Grodzovsky , Intel Graphics Development , DRI Development , Steven Price , Daniel Vetter , Lee Jones Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gVHVlLCBKdWwgMTMsIDIwMjEgYXQgODozNSBBTSBDaHJpc3RpYW4gS8O2bmlnCjxjaHJpc3Rp YW4ua29lbmlnQGFtZC5jb20+IHdyb3RlOgo+Cj4gQW0gMTIuMDcuMjEgdW0gMTk6NTMgc2Nocmll YiBEYW5pZWwgVmV0dGVyOgo+ID4gSXQgbWlnaHQgYmUgZ29vZCBlbm91Z2ggb24geDg2IHdpdGgg anVzdCBSRUFEX09OQ0UsIGJ1dCB0aGUgd3JpdGUgc2lkZQo+ID4gc2hvdWxkIHRoZW4gYXQgbGVh c3QgYmUgV1JJVEVfT05DRSBiZWNhdXNlIHg4NiBoYXMgdG90YWwgc3RvcmUgb3JkZXIuCj4gPgo+ ID4gSXQncyBkZWZpbml0ZWx5IG5vdCBlbm91Z2ggb24gYXJtLgo+ID4KPiA+IEZpeCB0aGlzIHBy b3BsZXJ5LCB3aGljaCBtZWFucwo+ID4gLSBleHBsYWluIHRoZSBuZWVkIGZvciB0aGUgYmFycmll ciBpbiBib3RoIHBsYWNlcwo+ID4gLSBwb2ludCBhdCB0aGUgb3RoZXIgc2lkZSBpbiBlYWNoIGNv bW1lbnQKPiA+Cj4gPiBBbHNvIHB1bGwgb3V0IHRoZSAhc2NoZWRfbGlzdCBjYXNlIGFzIHRoZSBm aXJzdCBjaGVjaywgc28gdGhhdCB0aGUKPiA+IGNvZGUgZmxvdyBpcyBjbGVhcmVyLgo+ID4KPiA+ IFdoaWxlIGF0IGl0IHNwcmlua2xlIHNvbWUgY29tbWVudHMgYXJvdW5kIGJlY2F1c2UgaXQgd2Fz IHZlcnkKPiA+IG5vbi1vYnZpb3VzIHRvIG1lIHdoYXQncyBhY3R1YWxseSBnb2luZyBvbiBoZXJl IGFuZCB3aHkuCj4gPgo+ID4gTm90ZSB0aGF0IHdlIHJlYWxseSBuZWVkIGZ1bGwgYmFycmllcnMg aGVyZSwgYXQgZmlyc3QgSSB0aG91Z2h0Cj4gPiBzdG9yZS1yZWxlYXNlIGFuZCBsb2FkLWFjcXVp cmUgb24gLT5sYXN0X3NjaGVkdWxlZCB3b3VsZCBiZSBlbm91Z2gsCj4gPiBidXQgd2UgYWN0dWFs bHkgcmVxdWlyaW5nIG9yZGVyaW5nIGJldHdlZW4gdGhhdCBhbmQgdGhlIHF1ZXVlIHN0YXRlLgo+ ID4KPiA+IHYyOiBQdXQgc21wX3JtcCgpIGluIHRoZSByaWdodCBwbGFjZSBhbmQgZml4IHVwIGNv bW1lbnQgKEFuZHJleSkKPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5p ZWwudmV0dGVyQGludGVsLmNvbT4KPiA+IENjOiAiQ2hyaXN0aWFuIEvDtm5pZyIgPGNocmlzdGlh bi5rb2VuaWdAYW1kLmNvbT4KPiA+IENjOiBTdGV2ZW4gUHJpY2UgPHN0ZXZlbi5wcmljZUBhcm0u Y29tPgo+ID4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gPiBD YzogQW5kcmV5IEdyb2R6b3Zza3kgPGFuZHJleS5ncm9kem92c2t5QGFtZC5jb20+Cj4gPiBDYzog TGVlIEpvbmVzIDxsZWUuam9uZXNAbGluYXJvLm9yZz4KPiA+IENjOiBCb3JpcyBCcmV6aWxsb24g PGJvcmlzLmJyZXppbGxvbkBjb2xsYWJvcmEuY29tPgo+ID4gLS0tCj4gPiAgIGRyaXZlcnMvZ3B1 L2RybS9zY2hlZHVsZXIvc2NoZWRfZW50aXR5LmMgfCAyNyArKysrKysrKysrKysrKysrKysrKysr LS0KPiA+ICAgMSBmaWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p Cj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfZW50 aXR5LmMgYi9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX2VudGl0eS5jCj4gPiBpbmRl eCBmNzM0N2MyODQ4ODYuLjg5ZTNmNmVhZjUxOSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9zY2hlZHVsZXIvc2NoZWRfZW50aXR5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9z Y2hlZHVsZXIvc2NoZWRfZW50aXR5LmMKPiA+IEBAIC00MzksOCArNDM5LDE2IEBAIHN0cnVjdCBk cm1fc2NoZWRfam9iICpkcm1fc2NoZWRfZW50aXR5X3BvcF9qb2Ioc3RydWN0IGRybV9zY2hlZF9l bnRpdHkgKmVudGl0eSkKPiA+ICAgICAgICAgICAgICAgZG1hX2ZlbmNlX3NldF9lcnJvcigmc2No ZWRfam9iLT5zX2ZlbmNlLT5maW5pc2hlZCwgLUVDQU5DRUxFRCk7Cj4gPgo+ID4gICAgICAgZG1h X2ZlbmNlX3B1dChlbnRpdHktPmxhc3Rfc2NoZWR1bGVkKTsKPiA+ICsKPiA+ICAgICAgIGVudGl0 eS0+bGFzdF9zY2hlZHVsZWQgPSBkbWFfZmVuY2VfZ2V0KCZzY2hlZF9qb2ItPnNfZmVuY2UtPmZp bmlzaGVkKTsKPiA+Cj4gPiArICAgICAvKgo+ID4gKyAgICAgICogSWYgdGhlIHF1ZXVlIGlzIGVt cHR5IHdlIGFsbG93IGRybV9zY2hlZF9lbnRpdHlfc2VsZWN0X3JxKCkgdG8KPiA+ICsgICAgICAq IGxvY2tsZXNzbHkgYWNjZXNzIC0+bGFzdF9zY2hlZHVsZWQuIFRoaXMgb25seSB3b3JrcyBpZiB3 ZSBzZXQgdGhlCj4gPiArICAgICAgKiBwb2ludGVyIGJlZm9yZSB3ZSBkZXF1ZXVlIGFuZCBpZiB3 ZSBhIHdyaXRlIGJhcnJpZXIgaGVyZS4KPiA+ICsgICAgICAqLwo+ID4gKyAgICAgc21wX3dtYigp Owo+ID4gKwo+Cj4gQWdhaW4sIGNvbmNlcHR1YWwgdGhvc2UgYmFycmllcnMgc2hvdWxkIGJlIHBh cnQgb2YgdGhlIHNwc2NfcXVldWUKPiBjb250YWluZXIgYW5kIG5vdCBleHRlcm5hbGx5LgoKVGhh dCB3b3VsZCBiZSBleHRyZW1lbHkgdW51c3VhbCBhcGkuIExldCdzIGFzc3VtZSB0aGF0IHlvdXIg cXVldWUgaXMKdmVyeSBkdW1iLCBhbmQgcHJvdGVjdGVkIGJ5IGEgc2ltcGxlIGxvY2suIFRoYXQn cyBhYm91dCB0aGUgbWF4aW11bQphbnkgdXNlciBjb3VsZCBleHBlY3QuCgpCdXQgdGhlbiB5b3Ug c3RpbGwgbmVlZCBiYXJyaWVycyBoZXJlLCBiZWNhdXNlIGxpbnV4IGxvY2tzIChzcGlubG9jaywK bXV0ZXgpIGFyZSBkZWZpbmVkIHRvIGJlIG9uZS13YXkgYmFycmllcnM6IFN0dWZmIHRoYXQncyBp bnNpZGUgaXMKZ3VhcmFudGVlZCB0byBiZSBkb25lIGluc2luZGUsIGJ1dCBzdHVmZiBvdXRzaWRl IG9mIHRoZSBsb2NrZWQgcmVnaW9uCmNhbiBsZWFrIGluLiBUaGV5J3JlIGxvYWQtYWNxdWlyZS9z dG9yZS1yZWxlYXNlIGJhcnJpZXJzLiBTbyBub3QgZ29vZAplbm91Z2guCgpZb3UgcmVhbGx5IG5l ZWQgdG8gaGF2ZSBiYXJyaWVycyBoZXJlLCBhbmQgdGhleSByZWFsbHkgYWxsIG5lZWQgdG8gYmUK ZG9jdW1lbnRlZCBwcm9wZXJseS4gQW5kIHllcyB0aGF0J3MgYSBzaGl0LXRvbiBvZiB3b3JrIGlu IGRybS9zY2hlZCwKYmVjYXVzZSBpdCdzIGZ1bGwgb2YgeW9sbyBsb2NrbGVzcyBzdHVmZi4KClRo ZSBvdGhlciBjYXNlIHlvdSBjb3VsZCBtYWtlIGlzIHRoYXQgdGhpcyB3b3JrcyBsaWtlIGEgd2Fr ZXVwIHF1ZXVlLApvciBzaW1pbGFyLiBUaGUgcnVsZXMgdGhlcmUgYXJlOgotIHdha2VfdXAgKGku ZS4gcHVzaGluZyBzb21ldGhpbmcgaW50byB0aGUgcXVldWUpIGlzIGEgc3RvcmUtcmVsZWFzZSBi YXJyaWVyCi0gdGhlIHdha2VkIHVwIChpLmUuIHBvcHBpbmcgYW4gZW50cnkpIGlzIGEgbG9hZCBh Y3F1aXJlIGJhcnJpZXIKV2hpY2ggaXMgb2J2aXVvc2x5IG5lZWRlZCBiZWNhdXNlIG90aGVyd2lz ZSB5b3UgZG9uJ3QgaGF2ZSBjb2hlcmVuY3kKZm9yIHRoZSBkYXRhIHF1ZXVlZCB1cC4gQW5kIGFn YWluIG5vdCB0aGUgYmFycmllcnMgeW91J3JlIGxvY2tpbmcgZm9yCmhlcmUuCgpFaXRoZXIgd2F5 LCB3ZSdkIHN0aWxsIG5lZWQgdGhlIGNvbW1lbnRzLCBiZWNhdXNlIGl0J3Mgc3RpbGwgbG9ja2xl c3MKdHJpY2tlcnksIGFuZCBldmVyeSBzaW5nbGUgb25lIG9mIHRoYXQgbmVlZHMgdG8gaGF2ZSBh IGNvbW1lbnQgb24gYm90aApzaWRlcyB0byBleHBsYWluIHdoYXQncyBnb2luZyBvbi4KCkVzc2Vu dGlhbGx5IHJlcGxhY2Ugc3BzY19xdWV1ZSB3aXRoIGFuIGxsaXN0IHVuZGVybmVhdGgsIGFuZCB0 aGF0J3MKdGhlIGFtb3VudCBvZiBiYXJyaWVycyBhIGRhdGEgc3RydWN0dXJlIHNob3VsZCBwcm92 aWRlLiBBbnl0aGluZyBlbHNlCmlzIGFza2luZyB5b3VyIGRhdGFzdHJ1Y3R1cmUgdG8gcGFwZXIg b3ZlciBidWdzIGluIHlvdXIgdXNlcnMuCgpUaGlzIGlzIHNpbWlsYXIgdG8gaG93IGF0b21pY190 IGlzIGJ5IGRlZmF1bHQgY29tcGxldGVseSB1bm9yZGVyZWQsCmFuZCB1c2VycyBuZWVkIHRvIGFk ZCBiYXJyaWVycyBhcyBuZWVkZWQsIHdpdGggY29tbWVudHMuIEkgdGhpbmsgdGhpcwppcyBhbGwg dG8gbWFrZSBzdXJlIHBlb3BsZSBkb24ndCBqdXN0IHdyaXRlIGxvY2tsZXNzIGFsZ29yaXRobXMK YmVjYXVzZSBpdCdzIGEgY29vbCBpZGVhLCBidXQgYXJlIGZvcmNlZCB0byB0aGluayB0aGlzIGFs bCB0aHJvdWdoLgpXaGljaCBzZWVtcyB0byBub3QgaGF2ZSBoYXBwZW5lZCB2ZXJ5IGNvbnNpc3Rl bnRseSBmb3IgZHJtL3NjaGVkLCBzbyBJCmd1ZXNzIG5lZWRzIHRvIGJlIGZpeGVkLgoKSSdtIGRl ZmluaXRlbHkgbm90IGdvaW5nIHRvIGhpZGUgYWxsIHRoYXQgYnkgbWFraW5nIHRoZSBzcHNjX3F1 ZXVlCnN0dWZmIHByb3ZpZGUgcmFuZG9tIHVuanVzdGlmaWVkIGJhcnJpZXJzIGp1c3QgYmVjYXVz ZSB0aGF0IHdvdWxkCnBhcGVyIG92ZXIgZHJtL3NjaGVkIGJ1Z3MuIFdlIG5lZWQgdG8gZml4IHRo ZSBhY3R1YWwgYnVncywgYW5kCnByZWZlcnJhYmxlIGFsbCBvZiB0aGVtLiBJJ3ZlIGZvdW5kIGEg ZmV3LCBidXQgSSB3YXNuJ3QgaW52b2x2ZWQgaW4KZHJtL3NjaGVkIHRodXMgZmFyLCBzbyBiZXN0 IEkgY2FuIGRvIGlzIGRpc2NvdmVyIHRoZW0gYXMgd2UgZ28uCi1EYW5pZWwKCgo+IFJlZ2FyZHMs Cj4gQ2hyaXN0aWFuLgo+Cj4gPiAgICAgICBzcHNjX3F1ZXVlX3BvcCgmZW50aXR5LT5qb2JfcXVl dWUpOwo+ID4gICAgICAgcmV0dXJuIHNjaGVkX2pvYjsKPiA+ICAgfQo+ID4gQEAgLTQ1OSwxMCAr NDY3LDI1IEBAIHZvaWQgZHJtX3NjaGVkX2VudGl0eV9zZWxlY3RfcnEoc3RydWN0IGRybV9zY2hl ZF9lbnRpdHkgKmVudGl0eSkKPiA+ICAgICAgIHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2No ZWQ7Cj4gPiAgICAgICBzdHJ1Y3QgZHJtX3NjaGVkX3JxICpycTsKPiA+Cj4gPiAtICAgICBpZiAo c3BzY19xdWV1ZV9jb3VudCgmZW50aXR5LT5qb2JfcXVldWUpIHx8ICFlbnRpdHktPnNjaGVkX2xp c3QpCj4gPiArICAgICAvKiBzaW5nbGUgcG9zc2libGUgZW5naW5lIGFuZCBhbHJlYWR5IHNlbGVj dGVkICovCj4gPiArICAgICBpZiAoIWVudGl0eS0+c2NoZWRfbGlzdCkKPiA+ICsgICAgICAgICAg ICAgcmV0dXJuOwo+ID4gKwo+ID4gKyAgICAgLyogcXVldWUgbm9uLWVtcHR5LCBzdGF5IG9uIHRo ZSBzYW1lIGVuZ2luZSAqLwo+ID4gKyAgICAgaWYgKHNwc2NfcXVldWVfY291bnQoJmVudGl0eS0+ am9iX3F1ZXVlKSkKPiA+ICAgICAgICAgICAgICAgcmV0dXJuOwo+ID4KPiA+IC0gICAgIGZlbmNl ID0gUkVBRF9PTkNFKGVudGl0eS0+bGFzdF9zY2hlZHVsZWQpOwo+ID4gKyAgICAgLyoKPiA+ICsg ICAgICAqIE9ubHkgd2hlbiB0aGUgcXVldWUgaXMgZW1wdHkgYXJlIHdlIGd1YXJhbnRlZWQgdGhh dCB0aGUgc2NoZWR1bGVyCj4gPiArICAgICAgKiB0aHJlYWQgY2Fubm90IGNoYW5nZSAtPmxhc3Rf c2NoZWR1bGVkLiBUbyBlbmZvcmNlIG9yZGVyaW5nIHdlIG5lZWQKPiA+ICsgICAgICAqIGEgcmVh ZCBiYXJyaWVyIGhlcmUuIFNlZSBkcm1fc2NoZWRfZW50aXR5X3BvcF9qb2IoKSBmb3IgdGhlIG90 aGVyCj4gPiArICAgICAgKiBzaWRlLgo+ID4gKyAgICAgICovCj4gPiArICAgICBzbXBfcm1iKCk7 Cj4gPiArCj4gPiArICAgICBmZW5jZSA9IGVudGl0eS0+bGFzdF9zY2hlZHVsZWQ7Cj4gPiArCj4g PiArICAgICAvKiBzdGF5IG9uIHRoZSBzYW1lIGVuZ2luZSBpZiB0aGUgcHJldmlvdXMgam9iIGhh c24ndCBmaW5pc2hlZCAqLwo+ID4gICAgICAgaWYgKGZlbmNlICYmICFkbWFfZmVuY2VfaXNfc2ln bmFsZWQoZmVuY2UpKQo+ID4gICAgICAgICAgICAgICByZXR1cm47Cj4gPgo+CgoKLS0KRGFuaWVs IFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cu ZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==