[ADCE][NFC] Cleanup data structures (#189407)
Cleanup used data structures:
- Replace InstInfo map with a SmallPtrSet, the pointer to the BlockInfo
is used only once and can be easily (and cheaply) accessed using the
block number.
- Remove "cached" fields from block data structures -- there is no
measurable performance benefit, but these fields do need to be
initialized and consume memory, so remove them. In all cases, the
information is trivially accessible from the instruction or block.
Pull Request: https://github.com/llvm/llvm-project/pull/189407
[MLIR][XeGPU] Support leading unit dims in vector.multi_reduction in sg to wi pass (#188767)
This PR adds support for transforming vector.multi_reduction with
vectors > rank 2d with leading unit dims
[lldb] Use ArrayRef instead of pointer+size (NFC) (#189186)
While here:
* Move the constructor to the public section. Almost all ThreadPlan
classes have public constructors.
* Use `std::make_shared()`. It is modern and more efficient.
[ADCE][NFC] Use block numbers instead of DenseMap (#189406)
Straight-forward replacement of the DenseMap with a vector. Data
structure cleanup will follow as separate patch.
NAS-140407 / 27.0.0-BETA.1 / Fix FC/iSCSI path availability during ALUA failover (by bmeagherix) (#18576)
Fixes FC/iSCSI path availability during HA failover when ALUA is
enabled.
Four independent problems caused paths to drop or I/O to fail during the
`dev_disk` -> `dev_vdisk` LUN swap window:
- **FC path death**: HA iSCSI session logout cascaded through SCST and
removed LUN mappings before the LUN swap, destroying the ALUA tgt_dev
filter and causing LUN NOT SUPPORTED on FC. Fixed by deferring
`reset_active` to after `become_active` has replaced all LUN mappings.
- **90-second global drain**: `activate_extents` wrote `active=1` via
sysfs, triggering `scst_suspend_activity(90s)`. Fixed by removing the
job entirely - `bind_alua_state=1` already handles dev_vdisk file-open
drain-free via `blockio_on_alua_state_change_finish`.
- **LUN replace blocks on in-flight commands**: `scst_acg_repl_lun`
[22 lines not shown]
[NFC][LV] Separate control-flow masking from tail-folding masking. (#169509)
- Differentiate between operations that need masking because they are in
a conditionally-executed block, and operations that need masking because
the loop is tail-folded (predicated).
- This is needed for future work when we need to support a predicated
vector epilogue in combination with an unpredicated vector body.
- This is first patch in a series.
- See #181401 for the follow-on work.
ip_mroute: FIBify
Modify the control plane (ioctl and socket option handlers) to use the
routing socket FIB to index into the mfctable array. Modify the
forwarding plane to use the mbuf's FIB to determine which routing table
to use.
MFC after: 2 weeks
Sponsored by: Stormshield
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D55241
ip6_mroute: Handle interface detach events
When an interface goes away we need to make sure the v6 multicast
routing tables don't carry any dangling references to the ifnet. The v4
code handles this already. Copy the approach there and use an
eventhandler to purge the corresponding MIF, if one exists, and further
go through all routes in the FIB and remove references to the interface.
MFC after: 2 weeks
Sponsored by: Stormshield
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D55246
ip(6)_mroute: Grow the routing tables when the number of FIBs changes
Use the new rtnumfibs_change event to expand the mfctable array when the
number of FIBs increases.
MFC after: 2 weeks
Sponsored by: Stormshield
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D55240
tests: Add some simple regression tests for ip_mroute
These use atf_python to create a number of hosts linked to a router.
The router runs pimd (for IPv4) or ip6_mrouter (simplistic IPv6
multicast router that I wrote since I couldn't find one in the ports
tree). The vnet_host*_handler() methods are invoked in different VNET
jails connected to the router; they register the connected epair with a
multicast group and verify that they can send messages to each other.
The tests are synchronized by sending messages over a unix domain
socket. The flow is something like:
1) test startup_method() is called, the unix socket is created,
2) the superclass creates jails and links them together using the
declared topology,
3) we wait for all child jails to start up and send a message on the
unix socket indicating that they are ready
4) we start the routing daemon in the main jail,
5) the test actually starts; starttest() kicks off the
vnet_host*_handlers(), which mostly just verify that they can send
[11 lines not shown]
ip6_mroute: Pass the multicast interface number directly to del_m6if()
There's no need to pass a pointer to the interface number. No
functional change intended.
MFC after: 2 weeks
Sponsored by: Stormshield
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D55245
ip6_mroute: FIBify
Modify the control plane (ioctl and socket option handlers) to use the
routing socket FIB to index into the mfctable array. Modify the
forwarding plane to use the mbuf's FIB to determine which routing table
to use.
MFC after: 2 weeks
Sponsored by: Stormshield
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D55242
ip6_mroute: Start putting global variables into a structure
As in the IPv4 version of this change, I added a struct mf6ctable
structure which holds all global routing table state, soon to become
per-FIB state.
Note that much of the v6 multicast routing code was not VNETified; this
change fixes that too.
MFC after: 2 weeks
Sponsored by: Stormshield
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D55238
net/route: Add an eventhandler for rt_numfibs changes
The multicast routing code will start implementing per-FIB routing
tables. As a part of this, it needs to be notified when the number of
FIBs changes, so that it can expand its tables.
Add an eventhandler for this purpose.
MFC after: 2 weeks
Sponsored by: Stormshield
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D55239
ip_mroute: Start moving globals into a structure
I would like to support per-FIB multicast routing tables, such that one
can run a routing daemon per-FIB, with each daemon oblivious to the
existence of others. Currently the multicast routing code is completely
unaware of FIBs.
To that end, start collecting various global variables in ip_mroute.c
into a per-VNET struct mfctable. In a future patch this will be
expanded into an array of mfctable structures, one per FIB. For now,
all of the state is collected into V_mfctables[0].
Each mfctable contains, among other things:
- a pointer to the routing socket, if routing is enabled,
- a hash table of routing cache entries,
- an table of network interfaces participating in the routing
configuration
This change has no functional effect, it is just factoring out these
[6 lines not shown]
[IR] Add @llvm.structured.alloca (#186811)
This instruction is an alternative for the `alloca` instruction when
targeting logical targets like DXIL/SPIR-V.
This instruction allocates some memory, but the exact size of the
allocation is not known at the IR level. Only some equivalence can be
determined.
Commit adds docs, instruction declaration, and IR verifier testing.
Related to:
https://discourse.llvm.org/t/rfc-adding-logical-structured-alloca/
ppsspp: updated to 1.20.3
1.20.3
Fix issue preventing ad hoc relay servers from working when RetroAchievements are enabled on Windows
Some ad hoc UI improvements
Fix crash/failure setting the background on iOS
Fix logging to file
Networking settings cleanup
Some fixes for assorted rare crashes
Fix issues when unpausing using a controller binding
Fix missing savestate undo button
MMPX texture upscaling algorithm has been restored, the new one has been improved
Fix support for custom game config for homebrew apps
Improve insets handling on Android
[ADCE][NFC] Use FindFunctionBackedges (#189405)
Slightly less efficient than it could be, because the backedges are
materialized, but more efficient than using a DenseMap.
Pull Request: https://github.com/llvm/llvm-project/pull/189405
misc/far2l: update Far2L to version 2.8.0 (nothing except)
- New ImageViewer plugin (requires ImageMagick and/or FFmpeg,
please install them as needed)
- Disable AppStream metainfo generation to avoid pulling
additional dependencies and because its usefulness on
FreeBSD is doubtful (yet keep the @comment in pkg-plist)
- Prune empty directories and fix WEBDAV_DESC while here
Reported by: portscout
ifnet: Fix races in if_vmove_reclaim()
The thread running if_vmove_reclaim() may race with other threads those
running if_detach(), if_vmove_loan() or if_vmove_reclaim(). In case the
current thread loses race, two issues arise,
1. It is unstable and unsafe to access ifp->if_vnet,
2. The interface is removed from "active" list, hence if_unlink_ifnet()
can fail.
For the first case, check against source prison's vnet instead, given
the interface is obtained from that vnet.
For the second one, return ENODEV to indicate the interface was on the
list but the current thread loses race, to distinguish from ENXIO, which
means the interface or child prison is not found. This is the same with
if_vmove_loan().
Reviewed by: kp, pouria
[3 lines not shown]
[NFC] Removes unused Combiner dependency on TargetPassConfig (#188365)
This enables NewPM ports since it removes multiple pass dependencies on
`TargetPassConfig` which we don't want to port to the NewPM.
It looks like no derived classes of Combiner actually use this pointer,
and it is also unused in the Combiner class.