On Thu, May 03, 2018 at 12:26:18AM +0300, Artturi Alm wrote: > On Wed, May 02, 2018 at 10:35:27AM -0700, s_g...@telus.net wrote: > > I realize the orangepi is not the swiftest of machines, but the ld issue is > > more than just SOC performance. The ld process should finish within a few > > seconds to a minute. It is taking 20 minutes. > > > > I am trying to build php as the current bulk build failed on so many > > packages. I think it is the first bulk build since clang. The other > > compiles and processes execute in reasonable time, but when it comes to ld > > something happens. > > > > As I was looking around trying to find what some clues I ran man from the > > serial console and it hung. Man runs fine from an ssh connection over the > > lan. Man on the console was hung in bqwait. What is that? > > > > PID USERNAME PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND > > 87860 root 63 0 45M 45M run - 18:26 64.60% ld > > 30014 sysadmin -6 0 832K 1556K sleep bqwait 0:10 15.23% man > > > > Later when I suspect ld finished more started to run and got stuck also, > > probably when ld started up again. > > > > PID USERNAME PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND > > 18030 root 59 0 46M 47M run - 23:02 54.54% ld > > 68435 sysadmin 58 0 257M 182M run - 0:57 42.72% more > > 30014 sysadmin 10 0 832K 0K idle wait 4:14 0.00% man > > > > Both man and more seem to be using cpu cycles even though they are stuck. > > Could ld be trying to do something with the console? > > > > Hi, > > > You could also add "stty status ^T" into ~/.profile, to see what's > going on when you press it. > tbh., i've never compiled anything gtk on armv7, so i think it's > something i can't help you with. > > for less pressure on 'tty level', you could take advantage of the fifo > your hw has, with the diff below. you can see the effect with systat(1) > in the Interrupts column for com0. > > -Artturi > >
Sorry, I actually sent you a old/wrong diff. correct one below. -Artturi diff --git sys/arch/armv7/dev/com_fdt.c sys/arch/armv7/dev/com_fdt.c index 053064e77c1..7fa43b25e0b 100644 --- sys/arch/armv7/dev/com_fdt.c +++ sys/arch/armv7/dev/com_fdt.c @@ -130,8 +130,11 @@ com_fdt_attach(struct device *parent, struct device *self, void *aux) sc->sc_reg_width = OF_getpropint(faa->fa_node, "reg-io-width", 4); sc->sc_reg_shift = OF_getpropint(faa->fa_node, "reg-shift", 2); - if (OF_is_compatible(faa->fa_node, "snps,dw-apb-uart")) + if (OF_is_compatible(faa->fa_node, "snps,dw-apb-uart")) { + sc->sc_uarttype = COM_UART_16550A; + sc->sc_fifolen = 64; intr = com_fdt_intr_designware; + } if (OF_is_compatible(faa->fa_node, "ti,omap3-uart") || OF_is_compatible(faa->fa_node, "ti,omap4-uart")) > > > > > -----Original Message----- > > From: owner-po...@openbsd.org <owner-po...@openbsd.org> On Behalf Of Mark > > Kettenis > > Sent: May 2, 2018 3:10 AM > > To: s_g...@telus.net > > Cc: po...@openbsd.org; arm@openbsd.org > > Subject: Re: gtk libool slow on arm > > > > > From: <s_g...@telus.net> > > > Date: Tue, 1 May 2018 16:30:28 -0700 > > > > > > Why is the gtk libtool so slow on arm? A typical command such as: > > > > It's not libtool, but ld, the link editor that is taking its time. > > > > > libtool: link: cc -o .libs/testentrycompletion -pthread -O2 -pipe -g > > > -Wall -Wl,-rpath-link -Wl,/usr/X11R6/lib -Wl,-rpath-link > > > -Wl,/usr/X11R6/lib testentrycompletion.o -L.libs -lgtk-3 -lgdk-3 > > > -lpangocairo-1.0 -lpango-1.0 > > > -lgobject-2.0 -lglib-2.0 -liconv -lpcre -lintl -lffi -lc++abi > > > -lgthread-2.0 -lfribidi -lm -lcairo -lpthread -lpixman-1 -lfontconfig > > > -lfreetype -lz -lexpat -lpng -lxcb-shm -lxcb -lxcb-render -lXrender > > > -lX11 -lXext > > > -lpangoft2-1.0 -lharfbuzz -lgraphite2 -lgdk_pixbuf-2.0 -lgmodule-2.0 > > > -lgio-2.0 -lcairo-gobject -lXinerama -lXi -lXrandr -lXcursor -lXfixes > > > -lXcomposite -lXdamage -lepoxy -latk-1.0 -latk-bridge-2.0 -ldbus-1 > > > -latspi -Wl,-rpath-link,/usr/local/lib,-rpath-link,/usr/X11R6/lib > > > > That is linking in quite a number of libraries, some of which are fairly > > sizeable. > > > > > takes from 15 to 20 minutes on arm. It is all cpu time, not i/o: > > > > The binutils linker is quite crappy. The LLVM linker is better. > > > > > load averages: 2.03, 2.02, 2.00 op1bsdsnap.graf.lan > > > 16:26:21 > > > > > > 78 processes: 1 running, 76 idle, 1 on processor up 4 days, > > > 7:42 > > > > > > CPU states: 99.6% user, 0.0% nice, 0.4% system, 0.0% interrupt, > > > 0.0% idle > > > > > > Memory: Real: 59M/234M act/tot Free: 259M Cache: 98M Swap: 11M/516M > > > > > > > > > > > > PID USERNAME PRI NICE SIZE RES STATE WAIT TIME CPU > > COMMAND > > > > > > 12051 root 64 0 7680K 8532K run - 6:44 99.12% ld > > > > > > 27209 sysadmin 2 0 972K 984K idle select 0:49 0.00% sshd > > > > > > 65728 _pflogd 4 0 716K 172K sleep bpf 0:29 0.00% pflogd > > > > > > I set up an i386 virtual system with one cpu at 3 GHz and the whole > > > gtk build including all the dependencies took a few hours. My gtk > > > build on an arm orangepi with a 1.2GHz cpu has been running for over > > > 48 hours, all due to libtool. A cc compile finishes in seconds. > > > > The orangepi probably runs at a lower speed since DVFS isn't implemented > > yet. And the Cortex-A7 simply isn't a very powerful CPU as it is completely > > in-order. Memory bandwidth on the orangepi is probably limited as well. > > > >