<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 4/16/22 21:59, Jin-oh Kang wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAMnQwqULui7gVPfWBT1NRd4W8wHjDCPmLw+JnTj-hZ++F-vK7w@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="auto">
        <div class="gmail_quote" dir="auto">
          <div dir="ltr" class="gmail_attr">On Tue, Apr 12, 2022, 5:59
            PM Paul Gofman <<a href="mailto:pgofman@codeweavers.com"
              moz-do-not-send="true" class="moz-txt-link-freetext">pgofman@codeweavers.com</a>>
            wrote:<br>
          </div>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div dir="auto">
              <div dir="ltr">I don’t think this complication worth it.
                What we would like to save is address space on 32 bit,
                but we can’t (before running 32 on 64 of course where
                this stack will be on 64 only). We apparently need to
                reserve address space for stack at once, so it has the
                space to grow, and then growing would only mean saving
                committed pages.</div>
            </div>
          </blockquote>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Maybe allocate extra stack only for function
          calls that might need it? Something like this: <a
href="https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/nf-ntddk-keexpandkernelstackandcallout"
            moz-do-not-send="true" class="moz-txt-link-freetext">https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/nf-ntddk-keexpandkernelstackandcallout</a></div>
        <div class="gmail_quote" dir="auto">
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div dir="auto">
              <blockquote type="cite">
                <div dir="ltr">
                </div>
              </blockquote>
            </div>
          </blockquote>
        </div>
      </div>
    </blockquote>
    <p>That can technically be made to work, but to do it we'd need:</p>
    <p>- maintain some pool of larger thread kernel stacks;</p>
    <p>- make a secondary switch to it in wine_unix_call or whenever we
      think we need a larger stack (as apparently it is not known in
      wine_syscall_dispatcher);</p>
    <p>- hunt the functions requiring larger stack one by one.</p>
    <p>All this together (and especially the last point) sounds like
      essentially a no go for me. Mind also that long term when 32 on 64
      is on by default the syscall stack will exist on 64 only.<br>
    </p>
  </body>
</html>