summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-08-11Merge "Add `volatile` specifier for the mapped memory area pointer to give a ↵tizenKarol Lewandowski4-8/+8
hint to the compiler that it cannot optimize any checks to it" into tizen
2022-08-10gdbus: drop unnecessary 'Response' out parameter of the 'Perf' methodAdam Michalski1-1/+0
Change-Id: Ia73930ce8be88dc1bf15f2fee045aaac98b2ee87
2022-08-10Add `volatile` specifier for the mapped memory area pointer to giveAdam Michalski4-8/+8
a hint to the compiler that it cannot optimize any checks to it Without this hint the compiler tends to optimize the synchronization barrier as it thinks that if a variable is unchanged in the parent process, it can optimize access to it and not perform the check each time during the `while` loop which leads to deadlock (endless waiting). Change-Id: I0a316b4e0d1546bc6864737c20c86601635fff2a
2022-08-02Ensure that the payload message is filled with non-zero characters.Adam Michalski10-12/+32
Payload messages are filled with a cyclical character pattern consisting of printable ASCII characters for debugging convenience. Co-author: Michal Bloch <m.bloch@samsung.com> Change-Id: I4c11508dc08ce7ca07977898d722c4ce4476677e
2022-03-08Add a busy-wait option [-w] to libdbus daemon testMichal Bloch1-4/+14
Makes the test more consistent by avoiding scheduler and memory cache issues, leaving just true latency (-60% to values on my particular setup). However, also makes it model the real world less well. This makes it good for %-based comparisons, but less so for absolute time measurements. Change-Id: Ia71976c83e26f180babfe7f512adebda20e281e6 Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2022-02-19Merge "gdbus, p2p-gdbus: Replace asynchronous flushing function calls with ↵Karol Lewandowski2-13/+16
their synchronous counterparts" into tizen
2022-02-19Merge "Add missing help message entry for raw data mode" into tizenKarol Lewandowski1-0/+1
2022-02-18Add missing help message entry for raw data modeAdam Michalski1-0/+1
Added missing raw data mode help entry to the common help message. Change-Id: Id5148eb6430746c6d48b288eefc4d523e78bebc5
2022-02-18p2p-gdbus: Remove unnecessary connection capabilities checksAdam Michalski1-8/+2
Since we don't use fd passing in our tests, the checks for fd passing capabilities have been removed. Change-Id: I62703284cf71c31aa679ed4e1807336ddbb97870
2022-02-17gdbus, p2p-gdbus: Replace asynchronous flushing function calls withAdam Michalski2-13/+16
their synchronous counterparts More in-depth tests have shown that synchronous connection flushing produces more predictable results under heavy load. Moreover, it seems to be the only way to ensure stable and predictable execution flow, where under heavy load the server can become starved even for a few seconds. Change-Id: Ia99618b83a3b9d86fd132554583e6d3250b099f9
2022-02-11Merge "gdbus, p2p-gdbus: fix a memory leak" into tizenKarol Lewandowski2-2/+10
2022-02-11Merge "libdbus, gdbus, p2p-gdbus: Add flushing connection after send" into tizenKarol Lewandowski3-1/+9
2022-02-08gdbus, p2p-gdbus: fix a memory leakAdam Michalski2-2/+10
Upon encountering an 's' in a format string, `g_variant_get()` takes a pointer to a (gchar *) (i.e., (gchar **)) and sets it to a newly-allocated copy of the string. It's the user's responsibility to free up memory by using `g_free()`. Change-Id: Ieec7ca25af592dfcdcca34dbe288ea347b80b102
2022-02-04Merge "Improve batch tests runner script" into tizenKarol Lewandowski1-6/+31
2022-02-03libdbus, gdbus, p2p-gdbus: Add flushing connection after sendAdam Michalski3-1/+9
Added flushing connection, that writes all queued outgoing messages to the transport. Without flushing the connection, there is no guarantee that messages have been sent to the networking buffers in the kernel before the server sends the messages asynchronously and then exits immediately. It also prevents latencies from stacking during measurements under heavy load. Change-Id: I5383f0bb4e32c91542c887f2e55eb7bdd030d738
2022-02-02Improve batch tests runner scriptAdam Michalski1-6/+31
The following improvements have been incorporated: - tweaked hackbench invocation by reducing the number of processes to 72 which is arbitrary but enough to generate a load of 25-30 that better mimics the real working environment of a heavily loaded system - parametrized calculating delays between sent messages depending on the message size for libdbus peer to peer to make it consistent with other IPC tests. Change-Id: I5b4da9571286ee87f5a06374d75739a97427b870
2022-02-02Merge "libdbus: fix real tries counting bug" into tizenKarol Lewandowski1-14/+17
2022-02-02Merge "libdbus-p2p: add a dual forked test" into tizenKarol Lewandowski5-16/+100
2022-02-02Merge "libdbus-p2p: fix a memory error" into tizenKarol Lewandowski1-0/+3
2022-02-02Merge "libdbus-p2p: add CPU pinning" into tizenKarol Lewandowski2-2/+37
2022-02-02Merge "libdbus-p2p: fix messages sometimes not being sent" into tizenKarol Lewandowski1-0/+6
2022-01-31libdbus: fix real tries counting bugAdam Michalski1-14/+17
Fixes a bug causing warm-up tries to be treated as real tries in latency calculations. Change-Id: I1548a162fffa6830cf589ebc46bcc571dcfc399b
2022-01-27libdbus-p2p: fix messages sometimes not being sentMichal Bloch1-0/+6
Change-Id: I989a600a7f664215545e4e3187448f431c4d10a2 Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2022-01-27libdbus-p2p: add CPU pinningMichal Bloch2-2/+37
Change-Id: I891b477723eef82db8721b8f9fc8f9910e753c21 Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2022-01-27Rearrange gdbus and peer to peer gdbus testsAdam Michalski2-44/+49
Rearranged tests now measure raw latency without counting message wrangling overhead. Change-Id: Ic8b9b48495d5842beee3781d462ec45564af41a5
2022-01-24libdbus-p2p: add a dual forked testMichal Bloch5-16/+100
Instead of a separate client and server binaries, the common test combines both and forks, similar to how the other tests implement this. Change-Id: I7124861bb21330df4aed6ffd02c5b2492408342e Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2022-01-24libdbus-p2p: fix a memory errorMichal Bloch1-0/+3
Change-Id: Ibd6adc341610e59ba0432fcd89b30cef609fdc24 Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2022-01-21Merge "Add batch tests runner script" into tizenKarol Lewandowski3-0/+105
2022-01-21Add batch tests runner scriptAdam Michalski3-0/+105
Change-Id: I3f809534cd71dfe906336f21db1ce403f924eca8
2022-01-12libdbus-p2p: better error reportingMichal Bloch1-2/+12
Change-Id: Ie172dcf45da6a2eb82f37cbb9a9eca7a31ebb4bf Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2022-01-05libdbus p2p benchmark: style and minor tweaksMichal Bloch2-81/+86
Change-Id: Icdb65ed4b875827b32b19c930cfe1749bae9f2c0 Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2022-01-05Merge "Fix a memleak in libdbus daemon benchmark" into tizenKarol Lewandowski1-3/+2
2022-01-04Amend help message to reflect latest changesAdam Michalski2-5/+18
Due to recent changes, the help message is no longer up to date. As GD-Bus peer to peer tests have additional command line options, a separate help message had to be created for them. Change-Id: Ib6ba927f74ea926bb683489bd85dcb535258ecda
2022-01-04Fix a memleak in libdbus daemon benchmarkMichal Bloch1-3/+2
Change-Id: I8dbbf91fabbec8051a37b5882fcad73d3f172c0c Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2022-01-04Add real tries parameterizationAdam Michalski6-23/+68
Let the user specify the number of real tries in each of the IPC tests. Take the default number of real tries as 1000, as it was previously hard-coded. Change-Id: I016e1f38479ecf4a81ed72a38900e51ccae54231
2021-12-30Add raw data mode to store every possible latency measurement result.Adam Michalski7-14/+159
Facilitates the creation of histograms from a large number of samples. Latencies are saved in a simple CSV file. Change-Id: I5d98289787a6f352f4998d421e87164e2145c901
2021-12-23Add p2p libdbus latency testsMichal Bloch4-1/+536
Change-Id: I5fbae009b5a311d2e9b16b3d52f72435cb70a700 Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2021-12-16Merge "Rearrange the libdbus test" into tizenKarol Lewandowski1-18/+19
2021-12-13Add benchmark for peer-to-peer dbus communication using libglibAdam Michalski4-0/+637
This commit adds new set of DBus-Glib benchmarks. The difference from previous benchmarks is that clients communicate directly (using libglib private socket) and not through dbus-daemon. The benchmark should allow to measure latency/throughput of socket-based communication with dbus data format. Compared to communication to dbus-daemon the following is not a part of the transfer and needs to be kept in mind while comparing performance that: - policy is not checked - only 1-to-1 communication is allowed (no broadcasts). Change-Id: I84d090a0f3e0d70f3ceb20de36dac41e19e38ae7
2021-12-08Rearrange the libdbus testMichal Bloch1-18/+19
Now it measures raw latency (without counting message wrangling overhead). Change-Id: Id8b4fe807c5c40d62d8398e03bd1f7681a491f76 Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2021-12-08Fix compilation (type correctness, makefile)Michal Bloch5-16/+15
Change-Id: I23ae1f9e58dca2de0a8715e5ca8f63264070879c
2021-09-30Add IPC benchmarksubmit/tizen/20211108.062031Unsung Lee11-1/+2188
Change-Id: Ia886f1d1d123185205d04f15efcc60deeb9909b6 Signed-off-by: Unsung Lee <unsung.lee@samsung.com> Add IPC benchmark Change-Id: Ia886f1d1d123185205d04f15efcc60deeb9909b6 Signed-off-by: Unsung Lee <unsung.lee@samsung.com> Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com> Signed-off-by: Unsung Lee <unsung.lee@samsung.com>
2019-10-25policychecker: print error related informationtizen_8.0_m2_releasetizen_7.0_m2_releasetizen_6.5.m2_releasetizen_6.0.m2_releasesubmit/tizen_6.5/20211028.162501submit/tizen_6.0_hotfix/20201103.114804submit/tizen_6.0_hotfix/20201102.192504submit/tizen_6.0/20201029.205104submit/tizen/20191031.025611accepted/tizen/unified/20191101.042154accepted/tizen/8.0/unified/20231005.093735accepted/tizen/7.0/unified/hotfix/20221116.105702accepted/tizen/7.0/unified/20221110.063450accepted/tizen/6.5/unified/20211028.114312accepted/tizen/6.0/unified/hotfix/20201103.003704accepted/tizen/6.0/unified/20201030.115416tizen_8.0tizen_7.0_hotfixtizen_7.0tizen_6.0_hotfixtizen_6.0accepted/tizen_unifiedaccepted/tizen_8.0_unifiedaccepted/tizen_7.0_unified_hotfixaccepted/tizen_7.0_unifiedaccepted/tizen_6.5_unifiedaccepted/tizen_6.0_unified_hotfixaccepted/tizen_6.0_unifiedsanghyeok.oh1-6/+152
Change-Id: I07dbeffd02cf67f98ec0363b7b4aaa55e8f34e02 Signed-off-by: sanghyeok.oh <sanghyeok.oh@samsung.com>
2019-10-21policychecker: skip preprocessor iso_dsdl_include.xslsanghyeok.oh1-15/+59
* change option argument (--system,--session) to (-s,-u) * add option (-v, -p) for checker developement * skip preprocessor policy checker using single schema file(rules.xsl) and it doesn't need XPath syntax check. This reduce policy checking time. (3min -> 19sec at tm1) Schematron's readme.txt states this: 1) First, preprocess your Schematron schema with iso_dsdl_include.xsl. This is a macro processor to assemble the schema from various parts. If your schema is not in separate parts, you can skip this stage. This stage also generates error messages for some common XPath syntax problems. Change-Id: Id8dbf03d3a4a5107440823b9bcb0ce1830cc4380 Signed-off-by: sanghyeok.oh <sanghyeok.oh@samsung.com>
2019-09-06policychecker: check syntaxtizen_5.5.m2_releasesubmit/tizen_5.5_mobile_hotfix/20201026.185104submit/tizen_5.5/20191031.000004submit/tizen/20190918.103006submit/tizen/20190916.012648submit/tizen/20190910.115228accepted/tizen/unified/20190919.010711accepted/tizen/5.5/unified/mobile/hotfix/20201027.090448accepted/tizen/5.5/unified/20191031.022716tizen_5.5_mobile_hotfixaccepted/tizen_5.5_unified_mobile_hotfixAdrian Szyndela1-0/+53
This adds a set of checking rules that check for typos, misspellings in attributes and some of values of attributes, such as send_type. Based on manual for dbus-daemon, which defines the policy tags and attributes. Change-Id: Ieb4795cdb1a4f0642684f8685092675e84e223ea
2019-09-04policychecker: add option(--system --session)sanghyeok.oh1-22/+56
Change-Id: Idf5d2cbbb0173461a609fa7e323b82e31e9618e7 Signed-off-by: sanghyeok.oh <sanghyeok.oh@samsung.com>
2019-09-03policychecker: is allow own for me present?Adrian Szyndela1-0/+8
This adds two checks which can help with detecting config files that have no "allow own" or "check own" or "allow own_prefix" or "check own_prefix" for services the config file is for. This works by adding two checking rules: 1. a rule that - for a config file containing policy rule "deny own" - warns if the file does not contain corresponding "allow own" or "check own" policy rule with the same name. 2. a rule that does the same, but for 'own_prefix' instead of 'own'. Change-Id: I758974724ffc5d5af821c44f4737ed87c9f63f59
2019-08-23policychecker: receiving signals without sendersubmit/tizen/20190827.044306submit/tizen/20190827.025238accepted/tizen/unified/20190828.011037Adrian Szyndela1-1/+1
This allows specifying of checking rules for signals without specifying receive_sender. That is, it allows telling who can receive some kind of signals without telling who can send them. Without this change every receive checking rule needed receive_sender field. This change is analogous to sending signals without send_destination. Change-Id: Ifb0a596980631315d175b33460ad2579265c1e5e
2019-08-23policychecker: allow i-dont-need-any-name configsAdrian Szyndela1-7/+0
This allows configurations that do not concern any owned names, e.g. configurations for specifying who can receive some specific signals. Without this change, the checking rules ensure that every policy configuration file contains at least one <deny send_destination/prefix> and one <deny own> policy rule. This was introduced when there was "global default allow" policy in some uses. Nowadays, such policies are probably long gone. Anyway, there are still other checking rules present, which complain for not having proper <deny> rules in default context, if <allow> rules for a name are present in the configuration file. Change-Id: Ic4eeee3ff5c8524fda58d17874fe6fdb37fb4d1c
2019-07-25policychecker: allow 'destination without interface' rulessubmit/tizen/20190807.012805submit/tizen/20190807.012600submit/tizen/20180808.030253accepted/tizen/unified/20190807.111828Adrian Szyndela1-2/+0
It seems that the checking rules that require all the policy rules with send_type="method_call" to have specified send_interface are too strong. This relaxes the checking rules a bit by allowing rules that: - are in the "default" or "mandatory" contexts; - have 'send_type' or 'receive_type set' to "method_call"; - have specified 'send_destination' or 'receive_sender'. That is, we don't require "send_interface" or "receive interface" anymore for such rules. Change-Id: Iefa9bb5a5e23319c7549fa597ab00b5c88600585