[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [PATCH v5 2/2] xen/x86: Livepatch: support patching CET-enhanced functions


  • To: Jiamei Xie <Jiamei.Xie@xxxxxxx>, Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>, Bjoern Doebel <doebel@xxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Jiamei Xie <Jiamei.Xie@xxxxxxx>
  • Date: Thu, 17 Mar 2022 10:00:05 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=uul8onTcrtpbmCKemTjiveyt/ma5fUZH87SZfsagwKM=; b=eIAyr7oO2MvqOYlb5Mm/CvDfegscB5fPtfHD5A/tExFODoQ/jqy2FGlgnz9DV+MvjDbpFEWoJC+VZNEek8KOMBSrt+H+qeVD9v1s4VSv2QcYMIF+4aHBPU2RZB8Sh/9PZ0QSR1cDkY+FTlGrn5IwvZzfQHBuSQJVY9bz44Ny0ObgBkrEQ2ETR9AjTojXpu+5oQilMJlvW1nDv4UBN9xc/yDhaeLBbKfe16FdiNKAue9WwX9Vn0wJkNYoyjHWfpzE61DA6Bq00UkTlZgso/zSJfE4vzLyUum4rGojk/l4vPXYwOD0N2P9OKoJgofe4FcyU8ahbBaUYh3ursq6wM7gSg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bKPvyFjQ6KJf5jKMDQJc4O9hYHDEjG0yqBufW9U5IY1OcCOjBmSI5iupTVvSkpekJzGrWU6RJxw32FhG+gkT7/64RQLirWgbd8Dqot0frobEJcf882TVeZMchAjRKOYhZuqIIKNnFi2K7zKkT1XG/PceyyvAysnW01cU+XnsecdoZ2uLMmie42vOAwNtnaZQHU0yaADHZZmMnzrdpTKjrDQcKL0Dlae4cfSu3jU/v8yAZpodn/8rKypP0EjaWS9wB7yzXMh5KKS51TvZ2NLkA04hNj9m8+K/5Kb5h9R27i0ZMwWgc9JnfMJxBNtd58bGVC9LvjDxdhFqGSde/++l+A==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: Michael Kurth <mku@xxxxxxxxx>, Martin Pohlack <mpohlack@xxxxxxxxx>, Roger Pau Monne <roger.pau@xxxxxxxxxx>, Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
  • Delivery-date: Thu, 17 Mar 2022 10:00:27 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Original-authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Thread-index: AQHYM8WNmsy9ALsOG0iEitvyqooH8ay3Sg6AgAwMHmCAAAypgA==
  • Thread-topic: [PATCH v5 2/2] xen/x86: Livepatch: support patching CET-enhanced functions


> -----Original Message-----
> From: Xen-devel <xen-devel-bounces@xxxxxxxxxxxxxxxxxxxx> On Behalf Of
> Jiamei Xie
> Sent: 2022年3月17日 17:17
> To: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>; Bjoern Doebel
> <doebel@xxxxxxxxx>; xen-devel@xxxxxxxxxxxxxxxxxxxx
> Cc: Michael Kurth <mku@xxxxxxxxx>; Martin Pohlack
> <mpohlack@xxxxxxxxx>; Roger Pau Monne <roger.pau@xxxxxxxxxx>;
> Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>; Konrad Rzeszutek Wilk
> <konrad.wilk@xxxxxxxxxx>
> Subject: RE: [PATCH v5 2/2] xen/x86: Livepatch: support patching CET-
> enhanced functions
> 
> Hi  Bjoern,
> 
> > -----Original Message-----
> > From: Xen-devel <xen-devel-bounces@xxxxxxxxxxxxxxxxxxxx> On Behalf Of
> > Ross Lagerwall
> > Sent: 2022年3月10日 1:12
> > To: Bjoern Doebel <doebel@xxxxxxxxx>; xen-devel@xxxxxxxxxxxxxxxxxxxx
> > Cc: Michael Kurth <mku@xxxxxxxxx>; Martin Pohlack
> > <mpohlack@xxxxxxxxx>; Roger Pau Monne <roger.pau@xxxxxxxxxx>;
> > Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>; Konrad Rzeszutek Wilk
> > <konrad.wilk@xxxxxxxxxx>
> > Subject: Re: [PATCH v5 2/2] xen/x86: Livepatch: support patching CET-
> > enhanced functions
> >
> > > From: Bjoern Doebel <doebel@xxxxxxxxx>
> > > Sent: Wednesday, March 9, 2022 2:53 PM
> > > To: xen-devel@xxxxxxxxxxxxxxxxxxxx <xen-devel@xxxxxxxxxxxxxxxxxxxx>
> > > Cc: Michael Kurth <mku@xxxxxxxxx>; Martin Pohlack
> > <mpohlack@xxxxxxxxx>; Roger Pau Monne <roger.pau@xxxxxxxxxx>;
> > Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>; Bjoern Doebel
> > <doebel@xxxxxxxxx>; Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>;
> > Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
> > > Subject: [PATCH v5 2/2] xen/x86: Livepatch: support patching CET-
> > enhanced functions
> > >
> > > Xen enabled CET for supporting architectures. The control flow aspect of
> > > CET expects functions that can be called indirectly (i.e., via function
> > > pointers) to start with an ENDBR64 instruction. Otherwise a control flow
> > > exception is raised.
> > >
> > > This expectation breaks livepatching flows because we patch functions by
> > > overwriting their first 5 bytes with a JMP + <offset>, thus breaking the
> > > ENDBR64. We fix this by checking the start of a patched function for
> > > being ENDBR64. In the positive case we move the livepatch JMP to start
> > > behind the ENDBR64 instruction.
> > >
> > > To avoid having to guess the ENDBR64 offset again on patch reversal
> > > (which might race with other mechanisms adding/removing ENDBR
> > > dynamically), use the livepatch metadata to store the computed offset
> > > along with the saved bytes of the overwritten function.
> > >
> > > Signed-off-by: Bjoern Doebel <doebel@xxxxxxxxx>
> > > Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> > > CC: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
> >
> > Reviewed-by: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
> 
> Tested-by: Jiamei xie <jiamei.xie@xxxxxxx>
> 
> Cheers,
> Jiamei
Sorry I forgot to add the scope I tested in last email. I tested it on armv8a. 
It worked fine and  didn't break arm.
Tested-by: Jiamei xie <jiamei.xie@xxxxxxx>
> Cheers,
> Jiamei




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.