Jief_Machak Posted April 6, 2021 Share Posted April 6, 2021 8 hours ago, Slice said: But why it is happen only with new commit? I guess the size of it was just what it needs to need padding between "__beginning_of_section_ctors" symbol and the actual content of the ctors section. Honestly, I'm surprised too. 8 hours ago, Slice said: 14 seconds at the end of Device Properties strings. 8 hours ago, Slice said: 27:689 14:328 stringlength = 134284 That's quite some injection ! Between "ATI injection not set" message and "stringlength =", there is quite a lot. It's in SetDevices(). I'll have a look. Most likely add some more temporary debug message to discover where exactly it happens. Link to comment Share on other sites More sharing options...
Slice Posted April 6, 2021 Share Posted April 6, 2021 1 hour ago, Jief_Machak said: That's quite some injection ! Between "ATI injection not set" message and "stringlength =", there is quite a lot. It's in SetDevices(). I'll have a look. Most likely add some more temporary debug message to discover where exactly it happens. He injected VideoBIOS so why the length and the time. Link to comment Share on other sites More sharing options...
Slice Posted April 6, 2021 Share Posted April 6, 2021 Hm, he said there is no such timeout with release-5132. The pause appeared later. Link to comment Share on other sites More sharing options...
Jief_Machak Posted April 6, 2021 Share Posted April 6, 2021 Hum, not easy to reproduce. I cannot inject a video bios on a VMWare because it's not a ATI or NVIDIA. Can I do it with Qemu ? Maybe he can try some of my compilation from here : https://github.com/jief666/CloverCommits so he can tell exactly which one has the problem ? Link to comment Share on other sites More sharing options...
Jief_Machak Posted April 6, 2021 Share Posted April 6, 2021 I was adding some logs and I got an idea. Could he try this : CLOVERX64.efi and tell me if it solved the delay ? Link to comment Share on other sites More sharing options...
Slice Posted April 7, 2021 Share Posted April 7, 2021 I asked him to produce new log with additional DBG and see: 6:636 0:003 generate string 23:552 16:916 hex2bin 23:557 0:004 stringlength = 134284 The codes are here if (StringDirty) { EFI_PHYSICAL_ADDRESS BufferPtr = EFI_SYSTEM_TABLE_MAX_ADDRESS; //0xFE000000; DBG("generate string\n"); XString8 newDeviceProperties = devprop_generate_string(device_inject_string); DBG("hex2bin\n"); size_t binaryPropSize = hex2bin(newDeviceProperties, NULL, 0); if ( binaryPropSize > MAX_UINT32 ) { MsgLog("devprop_generate_string(device_inject_string) is too big"); newDeviceProperties.setEmpty(); Link to comment Share on other sites More sharing options...
Jief_Machak Posted April 7, 2021 Share Posted April 7, 2021 That’s should be fixed in the last efi I’ve posted. Could he try and confirm ? Link to comment Share on other sites More sharing options...
Slice Posted April 7, 2021 Share Posted April 7, 2021 23 minutes ago, Jief_Machak said: That’s should be fixed in the last efi I’ve posted. Could he try and confirm ? We wait. Link to comment Share on other sites More sharing options...
Jief_Machak Posted April 7, 2021 Share Posted April 7, 2021 I manage to reproduce. Last efi didn't fix. Will post very soon. Link to comment Share on other sites More sharing options...
Jief_Machak Posted April 7, 2021 Share Posted April 7, 2021 This efi should fix : CLOVERX64.efi Let me know if I can commit. Link to comment Share on other sites More sharing options...
Slice Posted April 7, 2021 Share Posted April 7, 2021 I compiled commit c11a90046 and test on real hardware #1 in signature. Clover works faster. It was 5132 (master, commit 6ff5bab8a): 8:197 0:048 GUI ready and now 5132 (master, commit c11a90046) 5:727 0:048 GUI ready And in the system 10.14.6 I got strange CPU behaviour. It go crazy! I am in the process to understand what is happen. 1 Link to comment Share on other sites More sharing options...
Jief_Machak Posted April 7, 2021 Share Posted April 7, 2021 Just to be sure : The fix for long generation of devprop_generate_string is NOT committed. Because I wasn't sure although I can reproduce something that looks like it. So the guy from https://applelife.ru/ has to test the efi I posted here. 4 minutes ago, Slice said: Clover works faster. It was 5132 (master, commit 6ff5bab8a): 8:197 0:048 GUI ready and now 5132 (master, commit c11a90046) 5:727 0:048 GUI ready No idea why it would be faster here... Link to comment Share on other sites More sharing options...
Slice Posted April 7, 2021 Share Posted April 7, 2021 I still wait for those guy. Link to comment Share on other sites More sharing options...
Slice Posted April 7, 2021 Share Posted April 7, 2021 Main pause was here 0:100 0:000 CloverX64 : Image base = 0x4BCAB000 2:682 2:582 2:682 0:000 Now is 03.04.2021, 20:46:11 (GMT) 2:682 0:000 Starting Clover revision: 5132 (master, commit 6ff5bab8a) on American Megatrends EFI and now 0:100 0:000 CloverX64 : Image base = 0x4BCAA000 0:162 0:062 0:162 0:000 Now is 07.04.2021, 15:29:32 (GMT) 0:162 0:000 Starting Clover revision: 5132 (master, commit c11a90046) on American Megatrends EFI 20 minutes ago, Slice said: I still wait for those guy. Yes, the pause is absent! https://www.applelife.ru/threads/clover.42089/page-1370#post-934567 Link to comment Share on other sites More sharing options...
Jief_Machak Posted April 8, 2021 Share Posted April 8, 2021 19 hours ago, Slice said: Main pause was here 0:100 0:000 CloverX64 : Image base = 0x4BCAB000 2:682 2:582 2:682 0:000 Now is 03.04.2021, 20:46:11 (GMT) 2:682 0:000 Starting Clover revision: 5132 (master, commit 6ff5bab8a) on American Megatrends EFI and now 0:100 0:000 CloverX64 : Image base = 0x4BCAA000 0:162 0:062 0:162 0:000 Now is 07.04.2021, 15:29:32 (GMT) 0:162 0:000 Starting Clover revision: 5132 (master, commit c11a90046) on American Megatrends EFI This has nothing to do with the long time needed to construct device injection string. This one was because of a stall to give time to gdb to connect: gBS->Stall(2500000); // to give time to gdb to connect Mine is enclosed with #ifdef JIEF_DEBUG, but this line was duplicated outside the #ifdef. I guess I did (commit 3252bf63e0ce7efb735e38d2fcaaf3b6ef0315e4) that when you tried to launch gdb. By the way, does launching with gdb now works ? Link to comment Share on other sites More sharing options...
Slice Posted April 8, 2021 Share Posted April 8, 2021 Yes, I see gdb started but I still is not famous with it. Link to comment Share on other sites More sharing options...
Jief_Machak Posted April 8, 2021 Share Posted April 8, 2021 Can you have a backtrace on a panic ? Link to comment Share on other sites More sharing options...
Slice Posted April 8, 2021 Share Posted April 8, 2021 1 hour ago, Jief_Machak said: Can you have a backtrace on a panic ? But I have no panic at this moment Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word". Reading symbols from /Users/sergey/src/CloverBootloader/Qemu/../Build/Clover/DEBUG_GCC53/X64/CLOVERX64.debug... Remote debugging using localhost:9000 Python Exception <type 'exceptions.NameError'> Installation error: gdb.execute_unwinders function is missing: 0x000000007f5142d4 in ?? () Hardware read watchpoint 1: *0 Breakpoint 2 at 0x7dca2bfc: file /Users/sergey/src/CloverBootloader/rEFIt_UEFI/Platform/Posix/abort.cpp, line 37. Continuing. Link to comment Share on other sites More sharing options...
Slice Posted April 8, 2021 Share Posted April 8, 2021 New commit /Users/sergey/src/CloverBootloader/rEFIt_UEFI/cpp_unit_test/XString_test.cpp:1570:28: error: no matching function for call to 'XStringW::takeValueFrom(XString32&, int)' 1570 | xsw2.takeValueFrom(xsw, 1); | ^ Link to comment Share on other sites More sharing options...
Jief_Machak Posted April 8, 2021 Share Posted April 8, 2021 Using gdb on command line is very hard but annoying. I almost never use it like that. But having the backtrace in case of panic turn 1 or 2 hours searching with log into 5 minutes. From the console you sent, it looks like it works. Put a panic anywhere and try :-) Link to comment Share on other sites More sharing options...
Slice Posted April 8, 2021 Share Posted April 8, 2021 Resolved by excluding second argument. I.e. xsw2.takeValueFrom(xsw); Link to comment Share on other sites More sharing options...
Jief_Machak Posted April 8, 2021 Share Posted April 8, 2021 oups. done. Link to comment Share on other sites More sharing options...
Slice Posted April 8, 2021 Share Posted April 8, 2021 Yes, I can see panic Python Exception <type 'exceptions.NameError'> Installation error: gdb.execute_unwinders function is missing: Breakpoint 2, panic_ (Python Exception <type 'exceptions.NameError'> Installation error: gdb.execute_unwinders function is missing: format=0x7ddbd006 "ххх вам", va=0x7fcef598 "\030\032\376}") at /Users/sergey/src/CloverBootloader/rEFIt_UEFI/PlatformEFI/posix/abort.cpp:37 37 egSetGraphicsModeEnabled(false); (gdb) But I see no where it happened. I inserted panic("ххх вам") into main.cpp. Link to comment Share on other sites More sharing options...
Slice Posted April 8, 2021 Share Posted April 8, 2021 O yes! It is the command "bt" at /Users/sergey/src/CloverBootloader/rEFIt_UEFI/refit/main.cpp:3480 What else you can recommend me to use? Link to comment Share on other sites More sharing options...
iCanaro Posted April 8, 2021 Share Posted April 8, 2021 T-Ryzo 2 Link to comment Share on other sites More sharing options...
Recommended Posts