-
jbk
hrm.. this is odd... this system (annoyingly I can't access to it to dig more) is getting SMF_ERROR_NO_RESOURCES when a bunch of disks are connected to it (and failing to boot).. with the disks removed, comes up fine...
-
jbk
i was thinking maybe /etc/svc/volatile filling up, but at least with the disks removed, df -h is showing GBs of free space...
-
tsoome_
SCF_ERROR_NO_RESOURCES you meant? altho there is also SCF_ERROR_NO_MEMORY; apparently we do get SCF_ERROR_NO_RESOURCES translated from REP_PROTOCOL_FAIL_NO_RESOURCES but that too seems to be related to allocation errors.
-
tsoome_
still there are constructs like res = backend_tx_run(tx, q, fill_property_callback, &ci); if (res == REP_PROTOCOL_DONE) res = REP_PROTOCOL_FAIL_NO_RESOURCES;
-
tsoome_
basically, there are functions to return either OK or NO RESOURCES:)
-
gitomat
[illumos-gate] 17314 Obsolete reference to mibiisa in the netstat(8) manual -- Peter Tribble <peter.tribble⊙gc>
-
gitomat
[illumos-gate] 17315 The ddi_ufm_op_readimg(9E) manual is missing -- Peter Tribble <peter.tribble⊙gc>
-
jbk
tsoome_: yeah..
-
jbk
though out of memory seems odd.. the system has something like 300+gb of ram
-
jbk
... though svc.configd and svc.startd are 32-bit
-
jbk
... i wonder how many problems would crop up if I built an image w/ 64-bit versions of those...
-
jbk
tsoome_: i don't suppose you've tried that yet w/ your work of building things 64-bit? :)
-
tsoome_
I have done very little to build things 64-bit, just some zfs commands and few ones which used isaexec anyhow...
-
richlowe
jbk: if you want "64bit versions of things", check the arm64-gate, they're all that way necessarily
-
richlowe
for startd/configd in specific, you want _all_ the arm fixes to cmd/svc and lib/libscf, at least
-
richlowe
also the "repcache" stuff is kinda scary, and where one of those bugs lives
-
jbk
heh..
-
richlowe
so if tsoome is right pointing you into that, you probably want to make assumptions that what it seems to be telling you is true
-
richlowe
it's a real hoot
-
jbk
the hard part is that I can't actually get my hands on the system
-
jbk
i get at best a description of what comes up on the console
-
jbk
and not even copy/paste or a screenshot
-
jclulow
jbk: Is it an install to disk system, or a UFS ramdisk system?
-
jbk
ufs ramdisk (mostly, /etc is re-mounted later as a zfs dataset)
-
danmcd
Really dumb question... should a swap volume have `primarycache=none` set? I mean, it's for swap, i.e. memory, right?
-
» danmcd is probably missing something obvious...
-
sommerfeld
danmcd: I've used primarycache=metadata on swap volumes on the theory that you want to let indirect blocks and the like stay in cache.
-
sommerfeld
but I haven't measured it
-
danmcd
I'm worried about high-memory pressure situations where the reclaim takes so long IO times out. :( Corner-case, but something that prompted me to ask.
-
richlowe
danmcd: in memory pressure like that so many things go wrong it's hard to point fingers
-
richlowe
(you run out)
-
danmcd
Or the ostensibly free memory just can't be reclaimed fast enough. :O
-
jbk
one thing i'm hoping we could upstream soon is we noticed a couple of zfs kmem caches that seemed to have been skipped when doing reaping
-
jbk
since we've noticed the ones that were missing could potentially hold GBs of data in their kmem caches
-
danmcd
Whoa!
-
danmcd
Which ones?
-
sommerfeld
one related area of work I've thought about but haven't really done anything towards is having our swap system free blocks in the underlying storage when they are no longer needed.
-
danmcd
sommerfeld: like UNMAP/TRIM operations?
-
danmcd
I have a kernel dump from a too-large-BHYVE/transient-reservoir allocator that Just Froze Everything. Would love to inspect the state of the kmem caches you're targetting on this dump, jbk
-
richlowe
sommerfeld: for fragmentation?
-
jbk
danmcd: dnode_cache && dbuf_kmem_cache
-
sommerfeld
yeah. the swap allocator does a clock hand thing which means that an initially-sparse zvol winds up fully populated if you only have a little bit of swap usage.
-
jbk
the latter looks like it's named 'dmu_buf_impl_t' if you're looking in mdb
-
danmcd
Not even a Gig...
-
danmcd
> ::kmem_cache !egrep "dnode|dmu_buf"
-
danmcd
fffffdf266f92008 dnode_t 1200 000000 688 636735
-
danmcd
fffffdf2871ae008 dmu_buf_impl_t 1000 000000 216 1897380
-
danmcd
> !echo "(688 * 636735 + 216 * 1897380)" | bc
-
danmcd
847907760
-
danmcd
>
-
sommerfeld
not looking for actual overcommit, but it means the underlying pools have more actual free blocks to play with and don't have to preserve the value of swap pages that nobody will ever read again.
-
danmcd
@sommerfeld I get it now.
-
jbk
kinda related to that, though perhaps of less interest given semi-recent events.. i do have a change to sd.c that'll issue WRITE SAME w/ a zero-filled block for VMware virtual disks instead of issuing an UNMAP CDB
-
jbk
since the latter does nothing w/ vmware
-
jbk
but the former will actually shrink thin provisioned vmdk files
-
danmcd
WOW!
-
jbk
at least with ESX
-
jbk
but i'm guessing other variants are probably the same
-
jbk
(it actually has three different 'TRIM' implementations -- UNMAP, write same w/ unmap bit siet, write same w/o unmap bit set)
-
jbk
and it looks at the various vpd pages (and supported ops) to pick the method to use (or override via sd.conf)
-
jbk
(including disabling issuing unmap for the given disk type completely)
-
jclulow
jbk: If it's a UFS ramdisk, and something fails when you attach more disks, your UFS ramdisk image is probably out of inodes?
-
jclulow
All of the things created in the mounted /dev actually create a shadow object _under_ that in the root file system, to store permissions and such
-
jclulow
Which, while useless for persistence in a ramdisk situation, means that you need to have a fair amount of inodes in your UFS ramdisk thing
-
jclulow
I believe it's the -i option to newfs(8)
-
jbk
oh hmm...
-
jclulow
"df -F ufs -o i /" should tell you how much you're using now
-
jbk
ahh firmware... don't ever stop being terrible (unrelated to that issue)
-
jbk
now identified two firmware bugs today and I wasn't even meaning to
-
rzezeski
so a regular day