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

Re: [PATCH 4/5] xen/wait: Use relative stack adjustments


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>
  • Date: Mon, 18 Jul 2022 10:41:49 +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=9aPR39BjsIXpC3oY56oqxK1fFSdDx3DNYMzk9a7Vygk=; b=RAPG/95y2WLyorNIpHbz+5WWdozQXrHqgkCH7Z7Y+hc1RnqLecydnilxJjbLxl3VyVwYs1OelJFU320iC97v93hgXhrbfeKTTO6xZVoZu6+yNH840WNqrKg9szY8E8GylgvZX7MjI2A+4MbKJ0ZOx12BShtZeVn7GS1uYxeOzD0b6Nkx7Wo0nPAfgySE7ZN8kG0i6V1aS2i2vTrA5z5Hk2osch3Inc6gshq53WfLlbBZ4nxVs0ZtLpJUDrf1kQbJuNSW4WuXJnNk8lx/+v38ulyyrcPCNKPX2SFaG5YJG7tpJGqlyf2K+PYjmupBygAN1jHnn1Agm+Lqs6S/vZkCkA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BxYk+NAe6xJVY/w3NPHBXO0SG7ScbufxOWn88ExUYbnJTUqXGtfXDCC6EETEOsu+tmBG0acRMdc/1uYMdmd+OcJUq7h4wTW/MisN8HhriF7MQYrBRBlLjwrDm5G/ZrfjwPNOcusqtESXkmG2Qa2r0UR2Ch1F1b4sPbfMeDKXt7cqv+rCQp8ycSHRjjBHNszY2pmn+6/bNuRO7gj/drbSm6QjQfyBEMJITy4rnDFpLhJrYSxq/MESw6Ph/mjuiafk1c9tIPw8dPyBcTmAxT/kcB8T6oPxJVmRTfP/jPj7jq0TloNW0ZyJ1WQ1CrR5Bxk8sM5on2Pz5x0lxVJFm0lmBA==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Roger Pau Monne <roger.pau@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Mon, 18 Jul 2022 10:42:08 +0000
  • Ironport-data: A9a23:u/CWkK3a/c16/yr7PvbD5c1wkn2cJEfYwER7XKvMYLTBsI5bp2MFz GtKCGDUMqyNMTeheN11YNmz8UpS75SDmN5kQQBopC1hF35El5HIVI+TRqvS04J+DSFhoGZPt Zh2hgzodZhsJpPkjk7xdOKn9RGQ7InQLpLkEunIJyttcgFtTSYlmHpLlvUwx4VlmrBVOSvU0 T/Ji5CZaQXNNwJcaDpOsfrc8Uw35pwehRtD1rAATaET1LPhvyF94KI3fcmZM3b+S49IKe+2L 86rIGaRpz6xE78FU7tJo56jGqE4aue60Tum0xK6b5OKkBlazhHe545gXBYqheW7vB3S9zx54 I0lWZVd0m7FNIWU8AgWe0Ew/y2TocSqUVIISJSymZX78qHIT5fj6+lcHAYWGN1Ew8NID2Jw+ vkjCRYsdinW0opawJrjIgVtruIKCZCxeaYg4DRnxzyfCus6S5feRamM/cVfwDo7msFJG7DZe tYdbj1sKh/HZnWjOH9OUM54wLju2Ce5L2EwRFG9/MLb50D6ygBr3aerG93SYtGQHu1en1qCp 3KA9GP8av0fHIPCkmDcrCn37gPJtRjLYIErOYa+yt9rqkaq5WM2JU0qCWLu9JFVjWb7AbqzM Xc8+CAjsKwz/0yDVcTmUluzp3vslgEYc8pdFas98g7l4rrZ5UOVC3YJShZFacc6r4kmSDoyz FiLktj1Qzt1v9WopWm1876VqXa3JnITJGpbPyscF1NZv5/kvZ05iQ/JQpB7Cqmpg9bpGDb2h TeXsCw5gLZVhskOv0mmwW36b/uXjsChZmYICs//BwpJMisRiFaZWrGV
  • Ironport-hdrordr: A9a23:aaTp46kHW0xOfaRDbpyZQuNShyTpDfOPimdD5ihNYBxZY6Wkfp +V8cjzhCWftN9OYhodcIi7SdK9qXO1z+8X3WGIVY3SETUOy1HYVr2KirGSjwEIeheOvNK1sJ 0NT0EQMqyWMbEXt6fHCUyDYq4dKbq8ge+VbIXlvhFQpGhRAskOgTuRSDzra3GeLzM2Z6bRYa Dsgvav0ADQHEj/AP7aOlA1G8z44/HbnpPvZhALQzQ97hOVsD+u4LnmVzCFwxY3SVp0sPYf2F mAtza8yrSosvm9xBOZ/XTU9Y5qlNzozcYGLNCQi/ISNi7nhm+TFcRcsvy5zXMISdOUmRMXee r30lMd1gNImjTsl1SO0FnQMs/boXATAjHZuAalaDDY0LHErXoBerZ8bMRiA1XkAgMbza9BOO gg5RPni7NHSRzHhyjz/N7OSlVjkVe1u2MrlaoJg2VYSpZ2Us4ZkWUzxjIjLH47JlON1Kk3VO 11SM3M7vdfdl2XK3jfo2l02dSpGnA+BA2PTEQOstGcl2E+pgEz82IIgMgE2nsQ/pM0TJdJo+ zCL6RzjblLCssbd7h0CusNSda+TmbNXRXPOmSPJkmPLtBOB1vd75rspLkl7uCjf5IFiJM0hZ TaSVtd8XU/fkr/YPf+qKGjMiq9NVlVcQ6duv22vaIJy4EUbICbQhGrWRQpj9aqpekZD4nSR+ uzUagmccPeEQ==
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHYmnakulieGT4u2UqPhEJd4RhrIq2D7XmAgAADkYA=
  • Thread-topic: [PATCH 4/5] xen/wait: Use relative stack adjustments

On 18/07/2022 11:29, Jan Beulich wrote:
> On 18.07.2022 09:18, Andrew Cooper wrote:
>> -        "mov %%rsp,%%rsi;"
>> +
>> +        "mov %%ecx, %%eax;"
>> +        "mov %%rsp, %%rsi;" /* Copy from the stack, into wqv->stack */
>>  
>>          /* check_wakeup_from_wait() longjmp()'s to this point. */
>>          ".L_wq_resume: rep movsb;"
>> -        "mov %%rsp,%%rsi;"
>>  
>>          ".L_skip:"
>>          "pop %%r15; pop %%r14; pop %%r13;"
>>          "pop %%r12; pop %%rbp; pop %%rbx;"
>> -        : "=&S" (wqv->esp), "=&c" (dummy), "=&D" (dummy)
>> -        : "0" (0), "1" (cpu_info), "2" (wqv->stack),
>> +        : "=a" (used), "=D" (dummy),     "=c" (dummy),         "=&S" (dummy)
> You can't validly drop & from =D and =c.

On the contrary, GCC demands it.

& is only relevant, and only permitted, when there is not an explicit
input tied to the same register.

When there is an explicit input tied to the same register, of course it
can't be reused for another input before being used as an output.

https://godbolt.org/z/4vWP4PKc5

~Andrew

 


Rackspace

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