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

Re: [PATCH 0/2] x86: adjustments to .fixup section handling


  • To: Jan Beulich <jbeulich@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>
  • Date: Thu, 5 Jan 2023 14:19:42 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.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=+yGZRXvGO+UVpHf9k+TYi2cBP1Ac/eKITtQzNYJkGlQ=; b=AdROlE6D309vvUFefv6kkO+1igeyry1s7hTZZNfcuBhpc+HmbHAESBjuWc4SAXKkv94PJz/zW2j27rHTlSdHz0zBUnw/acZSb9GQQjn/cfZIHyDu8yMFVr/9d417Hk+rtMKuid/OvEjQpDdxMdgFK0C6n6J3d5wlFLjkiI//K3Opow1OAYFn2KtZSttv/4P/EL7QkdYymlaQCD87S8cCpSal4jhQ4BmN66pSbgqJ85PNdLj6NTFaVhX57mZdleGKMDreYTMiqWLzrxf4Pb2rWv5IzW2be+tjhizYEEzGb2Yc96GfBzBTVE9pi6Ip0ebU5ZKttmORYWuU7PrDx7Lc8g==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XzoHwUik2GVOOmptzIG5rMi4xwNuoXZEa3p72ClICGxDm4wzZO1Tus1ADDJvR6Ht0d1ku2qCLbUiUJm9HuZG498hRXRQWoS613HmOxaV+3XTTUyVBTaTYviAeIk/k9bfutYAQCshJSYTlmr5uu9MytOtDZxshMOW4sRLWUqVytXE7rTdUuh0xn1ZuuEvHYdmUTPKXtIIkoBa95gpSYFHvLaoQMqoroAG68U+kRYTbUUw5eyIPK8CXpBH2ae2Iz2bMbMV6iKfc/SZ9R0MnPTYkpaLBgDyTOdOI0OW4zxjeAT8LW21sYYGaas8So2Yt86vi5dXF/AWiWBw4W69FJVi7g==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Wei Liu <wl@xxxxxxx>, Roger Pau Monne <roger.pau@xxxxxxxxxx>
  • Delivery-date: Thu, 05 Jan 2023 14:19:57 +0000
  • Ironport-data: A9a23:SvxiAKnrRdxr73YIM3eI2bHo5gysJ0RdPkR7XQ2eYbSJt1+Wr1Gzt xJMXDqPOqncajb1eY1wao+x8EgCvJLUytZjGQNtqCwzFyMWpZLJC+rCIxarNUt+DCFhoGFPt JxCN4aafKjYaleG+39B55C49SEUOZmgH+a6U6icf3grHmeIcQ954Tp7gek1n4V0ttawBgKJq LvartbWfVSowFaYCEpNg064gE4p7aqaVA8w5ARkPqgS5AKGzBH5MbpETU2PByqgKmVrNrbSq 9brlNmR4m7f9hExPdKp+p6TnpoiG+O60aCm0xK6aoD66vRwjnVaPpUTbZLwXXx/mTSR9+2d/ f0W3XCGpaXFCYWX8AgVe0Ew/yiTpsSq8pefSZS0mZT7I0Er7xIAahihZa07FdRwxwp5PY1B3 f0fE2EBZ03cvbmd55CcZcVTqc8EJ9a+aevzulk4pd3YJdAPZMmbBo/suppf1jp2gd1SF/HDY cZfcSBocBnLfxxIPBEQFY46m+CrwHL4dlW0qnrM/fZxvzeVk1Q3ieC2WDbWUoXiqcF9t0CUv G/ZuU/+BQkXLoe3wjuZ6HO8wOTImEsXXapDTeLjq6Ex0DV/wEQJEj42bFahk8PhoUC/fspzK nU/pAQh+P1aGEuDC4OVsweDiHyOswMYWtFQO/Yn8wzLwa3Riy6JC25BQjNfZdgOsM4tWSdsx lKPh8nuBzFkrPuSU3313qiQhSO/P24SN2BqWMMfZQ4M4t2mqodsiBvKF45nCPTs1oazHizsy TeXqiR4n68UkcMAy6S8+xbAni6ooZ/KCAUy4207Q16Y0++wX6b9D6TA1LQRxa8dRGpFZjFtZ EQ5pvU=
  • Ironport-hdrordr: A9a23:8cJE46g8U3u9jJtJtR8kelhTFnBQXtIji2hC6mlwRA09TyX4rb HMoB1/73TJYVkqNU3I9ertBED4ewK4yXcX2+ks1NWZMjUO0VHAROtfBODZogEIdReQysdtkZ 1KXINaYeeAb2RHsQ==
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHZIPZlI/g6KVqo90Cr/TLfuVP4Fq6P35OA
  • Thread-topic: [PATCH 0/2] x86: adjustments to .fixup section handling

On 05/01/2023 11:10 am, Jan Beulich wrote:
> 1: macroize switches to/from .fixup section
> 2: split .fixup section with new enough gas
>
> Jan

Honestly, I was planning to make another effort to up the minimum
compiler versions to something which supports asm goto, and delete
.fixup entirely.

This is a prerequisite for taking objtool and using ORC unwinding.  The
use of the fixup section in the first place actually interferes with
backtraces; most uses can be removed with some tweaks (and tightening
overall) to the extable handling mechanism, but the VMX VM* instructions
(needing jae err) in particular can't use extable.

Given that we want to do this for several reasons anyway, I'm not sure
the added complexity here is useful.


As for extable size note, splitting into two tables will complicate the
lookup logic at runtime.  And even by splitting the table, you're only
reducing the search length by less than 1 step.

I don't see splitting the tables turning out to be a win, but there is a
far simpler option I think.  Table is sorted by address, so all we need
to do is make extable_end[] variable, and move it forward when we free
.init, at which point we only binary search through the first part of
the table.

~Andrew

 


Rackspace

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