{"push_id":725026155,"size":12,"distinct_size":0,"ref":"refs/heads/master","head":"3db617f14a0314a0e2a233b3ddaba1501213c0e5","before":"c91c18e6ef9ee5fca3d10b57ebddf211d3655a8d","commits":[{"sha":"ea65c72d069c279951c022daf337d99e3aaa670a","author":{"email":"bc4099e8129048574af98275fa037a1c852d38db@sysmocom.de","name":"Jacob Erlbeck"},"message":"alloc: Replace Algorithm B implementation\n\nThe current implementation always starts the downlink slot allocation\nwith the first possible slot, depending on which channels are enabled\nand which multislot class is offered by the MS. So in configurations\nwith many (>4) PDCH, some PDCH are not really used.\n\nThe new implementation introduced by this commit differs as follows:\n\n - The reservation mechanism provided by GprsMs is used to avoid\n   incompatibilities is used in the same way like algo A does. This\n   basically means, that the allocation is done once when the first\n   TBF is requested and then used until all TBF have been released.\n\n - All combinations of Rx and Tx slots are checked for compatibility\n   with the multiscot class. Basically the combination with the most\n   usable PDCH and the least number of reservations is used.\n\n - Only one UL slots is provided.\n\n - Tta and Tra are checked.\n\nSponsored-by: On-Waves ehf","distinct":false,"url":"https://api.github.com/repos/osmocom/osmo-pcu/commits/ea65c72d069c279951c022daf337d99e3aaa670a"},{"sha":"ed46afda6f647e47702379abacf632e7dcc9ee5b","author":{"email":"bc4099e8129048574af98275fa037a1c852d38db@sysmocom.de","name":"Jacob Erlbeck"},"message":"alloc: Only use common UL slots when calculating the capacity\n\nCurrently al possible UL slots are included in the capacity\ncalculation which is the base of the slot selection. Nevertheless\nUL-only slots will never be used, since only one uplink slot (which\nmust be a common slot) will be used.\n\nThis patch changes the code to only include common slots in the\ncapacity sum.\n\nNote that this might not be optimal if algorithm B supported\nmultiple uplink slots.\n\nSponsored-by: On-Waves ehf","distinct":false,"url":"https://api.github.com/repos/osmocom/osmo-pcu/commits/ed46afda6f647e47702379abacf632e7dcc9ee5b"},{"sha":"9ae282372c9b3e10050244b8a1c9179122556175","author":{"email":"bc4099e8129048574af98275fa037a1c852d38db@sysmocom.de","name":"Jacob Erlbeck"},"message":"alloc: Set minimum slot capacity to 1\n\nCurrently the capacity of a PDCH slot is calculated as 32 - N_reserved\nfor each direction. This can result in a capacity of 0 and even\nnegative values.\n\nThis commit forces the capacity of an usable slot to be at least zero\nunder the assumption, that an overly reserved PDCH is still better\nthan none.\n\nSponsored-by: On-Waves ehf","distinct":false,"url":"https://api.github.com/repos/osmocom/osmo-pcu/commits/9ae282372c9b3e10050244b8a1c9179122556175"},{"sha":"5f494b8415ff4e5c9bf323ea7bc8326ad423c7ae","author":{"email":"bc4099e8129048574af98275fa037a1c852d38db@sysmocom.de","name":"Jacob Erlbeck"},"message":"alloc: Only reserve 1 UL slot with algorithm B\n\nSince currently the algorithm B will only allocate a single UL slot\nand will have to stick to it (first common TS), the other possible UL\nslots will not be allocated while the reservation is kept.\n\nThis commit adds code to update the reserved set of UL slots to only\nreserve the single common TS when the UL TBF is allocated.\n\nInterestingly this leads to fewer allocated TBF in some cases due to\nUSF exhaustion. This will be improved by the following commit \"alloc:\nSkip common TS without free USF\".\n\nSponsored-by: On-Waves ehf","distinct":false,"url":"https://api.github.com/repos/osmocom/osmo-pcu/commits/5f494b8415ff4e5c9bf323ea7bc8326ad423c7ae"},{"sha":"16c6ecc3657f62728845764731c189b3cb8daca2","author":{"email":"bc4099e8129048574af98275fa037a1c852d38db@sysmocom.de","name":"Jacob Erlbeck"},"message":"alloc: Skip common TS without free USF when rating\n\nCurrently the search of the \"best\" slot combination is done\nseparately from the UL slot selection, which can lead to an\nallocation failure due to USF exhaustion even if another combination\nhad been possible.\n\nThis commit reduces the probability for this event by skipping UL\nslots without free USF while calculation the capacity.\n\nNote that the implementation is rather inefficient which will be\nfixed by the following commits.\n\nSponsored-by: On-Waves ehf","distinct":false,"url":"https://api.github.com/repos/osmocom/osmo-pcu/commits/16c6ecc3657f62728845764731c189b3cb8daca2"},{"sha":"cc9358f95aca618db451faf53971c45dfe0b505a","author":{"email":"bc4099e8129048574af98275fa037a1c852d38db@sysmocom.de","name":"Jacob Erlbeck"},"message":"tbf: Keep a set of used TFI and USF per PDCH\n\nCurrently is is rather expensive to get TFI and USF usage per PDCH,\nbecause the TBFs need to be scanned to get that information.\n\nThis commit adds corresponding bit sets which get updated by the\nattach_tbf/detach_tbf methods of the gprs_rlcmac_pdch class.\n\nSponsored-by: On-Waves ehf","distinct":false,"url":"https://api.github.com/repos/osmocom/osmo-pcu/commits/cc9358f95aca618db451faf53971c45dfe0b505a"},{"sha":"20b7ba75017a590294dcd4e38135293f33f66740","author":{"email":"bc4099e8129048574af98275fa037a1c852d38db@sysmocom.de","name":"Jacob Erlbeck"},"message":"alloc: Optimize find_free_usf\n\nAccording to callgrind, this function consumes 33% CPU when running\nthe AllocTest program.\n\nThis commit uses the assigned_usf() method to get the USFs allocated\nby a PDCH instead of traversing the TBFs.\n\nSponsored-by: On-Waves ehf","distinct":false,"url":"https://api.github.com/repos/osmocom/osmo-pcu/commits/20b7ba75017a590294dcd4e38135293f33f66740"},{"sha":"1653f837e3be32d94eeaabf29ae89fdf1dc66bac","author":{"email":"bc4099e8129048574af98275fa037a1c852d38db@sysmocom.de","name":"Jacob Erlbeck"},"message":"alloc: Disable inner loop debugging by default\n\nThe current logging statements within the inner loop of\nfind_multi_slots drain quite a lot of CPU resources even if\nLOGL_DEBUG is not enabled. This might cause issues on the target\nhardware.\n\nThis commit disables these LOGP calls unless the\nENABLE_TS_ALLOC_DEBUG macro has been set explicitly. This results in\na reduction in the CPU usage reported by callgrind for\nfind_multi_slots from 42% to 25% when executing AllocTest.\n\nSponsored-by: On-Waves ehf","distinct":false,"url":"https://api.github.com/repos/osmocom/osmo-pcu/commits/1653f837e3be32d94eeaabf29ae89fdf1dc66bac"},{"sha":"506f156f7a4aebb52dace00a760f86b2b4f5e19a","author":{"email":"bc4099e8129048574af98275fa037a1c852d38db@sysmocom.de","name":"Jacob Erlbeck"},"message":"sba: Reverse TS search order\n\nCurrently the search for an enabled PDCH slot for SBA start with the\nfirst TS. If there are more than 2 PDCH slots enabled, this slot will\nconflict with an existing multislot reservation for most multislot\nclasses. This were less likely if the search were reversed and\nstarted with the last slot due to the 3 slot shift between Tx and Rx.\n\nWhen multislot allocation is enabled and several MS are connected,\nand increased rate of poll timeouts can be observed.\n\nThis commit tries to reduce the number of poll timeouts by reverting\nthe slot search order for SBA allocation.\n\nSponsored-by: On-Waves ehf","distinct":false,"url":"https://api.github.com/repos/osmocom/osmo-pcu/commits/506f156f7a4aebb52dace00a760f86b2b4f5e19a"},{"sha":"14376a73a5916a3dfa5bb65a2487d364a933e4c8","author":{"email":"bc4099e8129048574af98275fa037a1c852d38db@sysmocom.de","name":"Jacob Erlbeck"},"message":"alloc/test: Delete first TBF after the second is allocated\n\nCurrently when using the test modes TEST_MODE_DL_AFTER_UL or\nTEST_MODE_UL_AFTER_DL, the first TBF is deleted before the second is\nallocated. The far more interesting case were to keep the first TBF a\nlittle bit longer until the second TBF has been created and delete\nthen. This comes closer the the situation observed with real MS,\nwhere the first TBF takes some time (timeout or waiting for Ack)\nbefore it gets deleted and thus detached from the MS object.\n\nThis commit delays the call to tbf_free accordingly.\n\nThe effect can be observed in the results of the algo A tests, where\nthe uniform distribution of the allocated PDCH is lost.\n\nSponsored-by: On-Waves ehf","distinct":false,"url":"https://api.github.com/repos/osmocom/osmo-pcu/commits/14376a73a5916a3dfa5bb65a2487d364a933e4c8"},{"sha":"efe62a73953349ba38781af2c264f273b2dde6e6","author":{"email":"bc4099e8129048574af98275fa037a1c852d38db@sysmocom.de","name":"Jacob Erlbeck"},"message":"alloc: Use least reserved PDCH for algo A\n\nCurrently the slot selection of algorithm A is based on the current\nslot usage by active TBF. Especially in the Dl after UL case which\nreflects the commen use case \"MS initiates TCP connection\", the\nresulting distribution is not optimal with respect to PDCH usage.\n\nThis commit changes the implementation to use the slot reservation\ninformation instead.\n\nSponsored-by: On-Waves ehf","distinct":false,"url":"https://api.github.com/repos/osmocom/osmo-pcu/commits/efe62a73953349ba38781af2c264f273b2dde6e6"},{"sha":"3db617f14a0314a0e2a233b3ddaba1501213c0e5","author":{"email":"bc4099e8129048574af98275fa037a1c852d38db@sysmocom.de","name":"Jacob Erlbeck"},"message":"llc: Fix comparison warning\n\nFixes: Jenkins build #609 warning\n\nAddresses:\n  llc.cpp:56, GNU C Compiler 3 (gcc), Priority: Normal\n  comparison between signed and unsigned integer expressions\n\nSponsored-by: On-Waves ehf","distinct":false,"url":"https://api.github.com/repos/osmocom/osmo-pcu/commits/3db617f14a0314a0e2a233b3ddaba1501213c0e5"}]}