New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dmclock: initial commit of dmclock QoS library #14330
Conversation
Hmm, the two commits created by the "git subtree pull ..." command are not signed, and there do not appear to be command line options to add a signature. |
This looks good to me... @jdurgin ? |
Don't worry about the signed-off-by for the subtree commits. The 'make check' error looks real though - it got a failure from not running the dmclock tests. |
I'll handle the make check issue. |
92df9bc
to
3c07720
Compare
retest this please |
3c07720
to
3cc1f90
Compare
src/CMakeLists.txt
Outdated
|
||
if(WITH_TESTS) | ||
install(PROGRAMS | ||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/dmclock-tests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
might want to include this in "ceph-test". see debian/ceph-test.install and ceph.spec.in (search for %files -n ceph-test
)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will do.
3cc1f90
to
dee3d05
Compare
-- Set runtime path of "/tmp/buildd/ceph-12.0.1-1259-g49dfa5a/debian/tmp/usr/bin/ceph-mds" to "/usr/lib/ceph" |
the pitfalls surrounding them. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
git-subtree-dir: src/dmclock git-subtree-split: d6586d73679f4a1bdf335235d309e2352f0c76c6
dmclock tests in ceph-test for builds. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
dee3d05
to
e80a884
Compare
This breaks SUSE builds:
|
The FindGTest.cmake module is part of the upstream cmake [1] (so it should be the same in all distros), and it is named "FindGTest.cmake", not "Findgtest.cmake". Fix the find_package() call introduced by ceph#14330 so the case matches. This fixes SUSE builds broken by that PR. [1] https://cmake.org/cmake/help/v3.0/module/FindGTest.html Signed-off-by: Nathan Cutler <ncutler@suse.com>
Hi Nathan, Thanks for looking into that. When ceph is built, gtest and gtest_main are targets, and I thought that would have prevented the find_package of gtest. Would you mind looking into that? Nonetheless, I'll fix the cases to match cmake's upstream. I'll likely include that in #14997 , which is currently under eval. |
@ivancich in #14997 you are dropping (i.e. not packaging) the binaries I ask because |
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/dmclock-tests | ||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/dmclock-data-struct-tests | ||
DESTINATION bin) | ||
endif(WITH_TESTS) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ivancich This is where the build of dmclock-tests
and dmclock-data-struct-tests
is made conditional upon WITH_TESTS
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we could change the guard to some other conditional (and not package these two binaries), then the problem I'm having will be solved I think!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
e.g. in CMakeLists.txt
add a line that says set(WITH_DMCLOCK_TESTS "enable the build of dmclock-tests and dmclock-data-struct-tests binaries" OFF)
and then s/WITH_TESTS/WITH_DMCLOCK_TESTS/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then somebody who wanted to build these binaries could pass -DWITH_DMCLOCK_TESTS=ON
to cmake, but for purposes of building RPMs and debs we would use -DWITH_DMCLOCK_TESTS=OFF
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you look at where this is heading (https://github.com/ivancich/ceph-fork/tree/wip-bring-in-dmclock-p2-gtest) all that is gone. dmclock tests won't even be built unless you do something like "make dmclock-tests". They're detached from ceph's tests. I think that'll give you what you want, no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dmclock tests won't even be built unless you do something like "make dmclock-tests". They're detached from ceph's tests. I think that'll give you what you want, no?
Yes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
although this [1] appears to be building the dmclock tests
# dmClock | ||
|
||
add_subdirectory(dmclock) # after gmock | ||
add_dependencies(tests dmclock-tests dmclock-data-struct-tests) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this line would get moved into the proposed WITH_DMCLOCK_TESTS
conditional
This commit brings in the dmclock library, located in a separate repo, as a git subtree. It also contains a README.git-subtree to describe this technique and some of the pitfalls surrounding it. And it links the cmake files so the library and support can be built.
Make targets include "dmclock", the static library; "dmclock-tests", unit tests for the dmclock code and supporting data structures; and "dmclock-sims", simulations that can be used to test and understand the library.